ES6中WeakSet数据结构的常用方法和使用场景

ES6中的WeakSet数据结构

WeakSet 是一种类似于 Set 的集合,但只接受对象作为成员,并且这些对象都是弱引用,不会阻止垃圾回收。

常用方法
  1. add(value)

    WeakSet 中添加一个对象。

    javascript 复制代码
    const ws = new WeakSet();
    const obj = { name: 'John' };
    ws.add(obj);
  2. has(value)

    检查某个对象是否在 WeakSet 中,返回布尔值。

    javascript 复制代码
    ws.has(obj);  // true
  3. delete(value)

    WeakSet 中删除某个对象,返回布尔值表示是否成功删除。

    javascript 复制代码
    ws.delete(obj);  // true
特性
  • 只接受对象类型值,不能存储原始类型。
  • 弱引用:如果对象在其他地方没有引用,会被自动垃圾回收,无需手动管理。
  • 不支持迭代操作 (forEachsizefor...of)。
使用场景
  1. DOM 节点的临时存储

    可以将 WeakSet 用于存储可能会被动态移除的 DOM 节点。由于是弱引用,当 DOM 节点被移除时,WeakSet 也会自动释放对它的引用,避免内存泄漏。

  2. 对象的存在性跟踪

    WeakSet 中追踪对象,而不用担心对象被垃圾回收。

总结

WeakSet 适用于管理短期对象引用,特别是在内存管理和垃圾回收方面有优势,常用于动态对象或 DOM 节点的场景。

相关推荐
chxii几秒前
在 Spring Boot 中,MyBatis 的“自动提交”行为解析
java·数据库·mybatis
徐子童4 分钟前
数据结构----排序算法
java·数据结构·算法·排序算法·面试题
hachi031314 分钟前
Vue中input disabled时点击事件不触发怎么办?
javascript·vue.js·ecmascript
漫天黄叶远飞30 分钟前
别再把对象当“字典”!JS 零基础也能看懂的“属性账本”拆解笔记
javascript
起名时在学Aiifox35 分钟前
Vue3 + Element Plus 表格排序实战:基于状态字段的智能排序方案
前端·javascript·vue.js·element plus
xiaohua100938 分钟前
ZGC实践
java·jvm
蒂法就是我42 分钟前
策略模式在spring哪里用到了?
java·spring·策略模式
yzx99101344 分钟前
基于Flask的智能语音增强系统模拟
前端·javascript·html
青衫码上行1 小时前
【Java Web学习 | 第14篇】JavaScript(8) -正则表达式
java·前端·javascript·学习·正则表达式
我的虾分发1 小时前
虾分发是一个键打包封装APP内测分发平台
javascript