📜  JavaScript WeakSet 完整参考(1)

📅  最后修改于: 2023-12-03 15:01:39.150000             🧑  作者: Mango

JavaScript WeakSet 完整参考

介绍

WeakSet 是一个 JavaScript 内置对象,它是一种集合数据结构,它与 Set 类似,但是它只能存储对象类型,不能存储任何其他数据类型的值。另外,它存储的对象都是弱引用,即在没有其他引用指向这个对象时,这个对象将被回收。

WeakSet 提供了以下方法:

  • WeakSet.prototype.add(value):向 WeakSet 中添加一个新的对象,返回 WeakSet 对象本身。
  • WeakSet.prototype.delete(value):从 WeakSet 中删除一个对象,如果成功删除则返回 true,否则返回 false。
  • WeakSet.prototype.has(value):检查 WeakSet 中是否存在指定的对象,如果存在则返回 true,否则返回 false。
用法

创建一个空的 WeakSet:

const set = new WeakSet();

向 WeakSet 添加一个对象:

const obj = {};

set.add(obj);

检查 WeakSet 中是否存在指定的对象:

set.has(obj); // true

从 WeakSet 中删除一个对象:

set.delete(obj);
注意事项
  • WeakSet 只能存储对象类型,不能存储任何其他数据类型的值。
  • 如果一个存储在 WeakSet 中的对象没有任何其他引用指向它,那么它将被垃圾回收掉,即使它仍然存在于 WeakSet 中。
  • WeakSet 中存储的对象都是弱引用,即当没有其他引用指向这个对象时,这个对象将被回收。
总结

WeakSet 是一种只存储对象类型并且存储对象为弱引用的集合数据类型。不同于 Set,WeakSet 的对象都是弱引用,当没有其他引用指向这个对象时,这个对象将被回收。WeakSet 提供了 add()、delete() 和 has() 三个方法来操作集合元素。在使用 WeakSet 时要注意,它只能存储对象类型,不能存储任何其他数据类型的值。