weakMap的特性及应用场景总结:
特性
WeakMap 只接受对象作为键名
1 | const map = new WeakMap(); |
WeakMap 的键名所引用的对象是弱引用
WeakMaps 保持了对键名所引用的对象的弱引用。在计算机程序中弱引用和强应用是相对的,是指不能确保其引用的对象不会被垃圾回收器回收的引用。一个对象若只被弱引用所引用,则被认为是不可访问(或弱可访问)的,并因此可能在任何时刻被回收。
在JavaScript中,一般我们创建的对象,都是强引用;
1 | var obj = new Object(); |
只有当我们手动设置为null时,才会回收obj
如果创建一个弱引用对象:
1 | // 假设可以这样创建一个 |