说明
和Set类似的另外一个数据结构称之为WeakSet,也是内部元素不能重复的数据结构。
那么和Set有什么区别呢?
区别一: WeakSet中只能存放对象类型,不能存放基本数据类型;
let weakSet = new WeakSet();weakSet.add(10);// Uncaught TypeError: Invalid value used in weak set
区别二: WeakSet对元素的引用是弱引用,如果没有其他引用对某个对象进行引用,那么GC可以对该对象进行回收
使用
add(value)
delete(value)
从WeakSet中删除和这个值相等的元素,返回boolean类型;
has(value)
判断WeakSet中是否存在某个元素,返回boolean类型;
没有清除
WeakSet不能遍历
因为WeakSet只是对对象的弱引用,如果我们遍历获取到其中的元素,那么有可能造成对象不能正常的销毁。所以存储到WeakSet中的对象是没办法获取的;
使用场景(用得少)


这样通过其他方式如call绑定其他this的,由于这个this没在临时储存里面,因此就会报错。
这个因为是临时储存,是弱引用,如果里面的实例对象被回收了,这里也就自动删除了这个元素,不会占内存空间
