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 节点的场景。

相关推荐
Stringzhua10 分钟前
Vue数据的变更操作与表单数据的收集【6】
前端·javascript·vue.js
乐~~~1 小时前
el-date-picker type=daterange 日期范围限制
javascript·vue.js·elementui
C4程序员1 小时前
北京JAVA基础面试30天打卡14
java·开发语言·面试
初遇你时动了情1 小时前
uniapp vue3 ts自定义底部 tabbar菜单
前端·javascript·uni-app
LGL6030A2 小时前
Java学习历程14——制作一款五子棋游戏(4)
java
烛阴3 小时前
掌握 TypeScript 的边界:any, unknown, void, never 的正确用法与陷阱
前端·javascript·typescript
qq_589568103 小时前
javaweb开发笔记—— 前端工程化
java·前端
码农小灰4 小时前
Kafka消息持久化机制全解析:存储原理与实战场景
java·分布式·kafka
前端工作日常5 小时前
H5 实时摄像头 + 麦克风:完整可运行 Demo 与深度拆解
前端·javascript
韩沛晓5 小时前
uniapp跨域怎么解决
前端·javascript·uni-app