📜  JavaScript 中的 WeakSet 对象有什么用?

📅  最后修改于: 2022-05-13 01:56:38.791000             🧑  作者: Mango

JavaScript 中的 WeakSet 对象有什么用?

简介: JavaScript WeakSet 对象是一种集合,它允许我们存储仅松散持有的项目。 WeakSet 与 Set 不同,它只是项的集合。它不包括任意值。它具有与集合相同的功能,因为它不包含重复项。 WeakSet 和集合之间的主要区别在于 WeakSet 是对象的集合,而不是某种类型的值。它支持像 Set 一样的 add、has 和 delete,但不支持 size、keys() 或迭代。

句法:

new WeakSet([iterable])  

范围:

  • iterable:它是一个可迭代对象,其元素将被添加到一个新的 WeakSet 中。

使用 WeakSet 对象的优点:

  • WeakSet 的内容可以被垃圾收集。
  • 降低内存利用率的可能性。
  • 对班级品牌很有用

WeakSet 对象的特点

  • WeakSet 对象仅包含唯一项。
  • 如果 WeakSet 中没有对存储对象的引用,则将其作为垃圾回收的目标。
  • WeakSet 中的项目不可枚举。因此,它没有提供任何获取请求对象的机制。
  • 它支持像 Set 一样的 add、has 和 delete,但不支持 size、keys() 或迭代。

与 WeakSet 对象一起使用的方法:

  • add(value):在此方法中,将 value 附加到 WeakSet 对象。
  • has(value):它返回一个布尔值,指示该值是否存在于 WeakSet 对象中。
  • delete(value):此方法从 WeakSet 中删除一个值。 WeakSet.prototype.has(value) 然后将返回 false。

示例 1:在此示例中,我们将使用 WeakSet() 构造函数来构建新的 WeakSet。这将生成一个新的 WeakSet,然后您可以使用它来存储数据。当您使用它来构建一个新的 WeakSet 时,您可以提供一个包含值的可迭代值作为它的参数。要确定给定对象是否存在于 WeakSet 中,请使用 has(value)。

index.js

Javascript


Javascript


输出:

示例 1

示例 2:在此示例中,我们将使用 weakset 构造函数创建一个 WeakSet 对象,然后使用 add函数添加值。之后,我们验证了我们添加的对象是否存在。然后使用 delete 方法从弱集中删除对象,然后我们再次验证对象是否成功删除。

index.js

Javascript


输出:

示例 2