WeakMap 的key必须是 对象类型,WeakSet 只有value没有key 并且value必须是 对象类型。
WeakMap和WeakSet都是弱引用的
let a = new WeakSet();
let b = {};
a.add(b);
b = null;
console.log(a);
打印结果
弱引用:引用了对象,对象的引用计数器不会增加。回收对象时,不需要考虑WeakMap和WeakSet是否引用了这个对象。WeakMap和WeakSet 因此也不提供任何可访问数据的接口