javascript - ES6 Set 和 WeakSet 有什么区别?

标签 javascript ecmascript-6 weak-references

ECMAScript 6 有这些非常相似的集合:SetWeakSet。它们有什么区别?

最佳答案

主要区别在于,对 Set 中对象的引用是强引用,而对 WeakSet 中对象的引用是弱引用。这意味着如果没有其他引用,WeakSet 中的对象可以被垃圾回收

其他差异(或者说副作用)是:

  • 集合可以存储任何值。 WeakSet 只是对象的集合。
  • WeakSet 没有size 属性。
  • WeakSet 没有clear、keys、values、entries、forEach 方法。
  • WeakSet 不可迭代。

关于javascript - ES6 Set 和 WeakSet 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43319924/

相关文章:

javascript - 自定义属性仅适用于 element.getAttribute ("attribute") 但不适用于 "element.attribute"

javascript - 将 jQuery 切换事件委托(delegate)给文档的其余部分

javascript - 如何使用 Soundcloud API 下载轨道?

reactjs - 普通 es6 类和扩展 React.Component 有什么区别

objective-c - 在 Objective-C(和 Swift)中弱属性是线程安全的吗?

javascript - 即使尚 undefined variable ,如何检查是否已声明?

javascript - 连接语法与扩展语法

javascript - 在 ES6 中以数字作为索引创建 HashMap 的最佳方法

javascript - 对于 WeakMap, "circular"引用会被视为 "reachability"吗?

Java WeakHashMap 引用未更新