什么是WeakMap?
WeakMap是ES6中新增的一种集合类型,叫做'弱映射'。它和Map是兄弟关系,与Map的区别在于这个弱字,API还是Map那套API
WeakMap的特性
- WeakMap只能将对象作为键名
只接受对象作为键名(null除外),不接受其它类型的值作为键名。
2.WeakMap的键名引用的对象是弱引用
首先我们需要知道什么是强引用什么是弱引用
强引用
当我们不再需要这两个对象时,我们必须手动删除这个引用,接触arr对两个对象的引用关系,否则垃圾回收机制不会释放e1和e2占用的内存。因为arr仍然存在着对对象的引用。
弱引用
是指不能确保其引用的对象不会被垃圾回收器回收的引用。一个对象若只被弱引用所引用,则被认为是不可访问的,并因此可能在任何时刻被回收。
也就是说当我们创建一个弱引用的对象时,我们就可以静静地等待其被垃圾回收器回收。