WeakSet
WeakSet 和 Set结构类似,也是不重复的值的集合。但是与Set有两个区别:
- WeakSet成员只能是对象,不能是其他类型的值。
- WeakSet中的对象都是弱引用,即垃圾回收机制不会考虑WeakSet对该对象的引用,若果其他对象都不再引用该对象,垃圾回收机制会自动回收该对象所占的内存,不考虑对象是否还存在于WeakSet之中。
const b = [3,4];const ws = new WeakSet(b);// error复制代码
称为wekeset 成员的是b数组的成员,而不是b数组本身,那么意味着,数组的成员也只能是对象。
方法
- WeakSet.prototype.add(val):添加一个新成员
- WeakSet.prototype.delete(val):清除指定实例成员
- WeakSet.prototype.has(val):返回布尔值,表示某个值是否存在于weakSet
用处
一个用处是存储DOM节点,不用担心这些节点从文档移除时引发内存泄漏。