【JavaScript】WeakSet
以下内容为学习记录,可以参考 MDN 原文。
环境
- node v12.18.1
- npm 6.14.5
- vscode 1.46
- Microsoft Edge 83
概念
WeakSet 对象允许你将弱保持对象存储在一个集合中。
构造函数
使用 WeakSet 构造函数,您可以创建 WeakSet 对象,这些对象将弱保存的对象存储在集合中。
var ws = new WeakSet();
var foo = {};
var bar = {};
ws.add(foo);
ws.add(bar);
ws.has(foo); // true
ws.has(bar); // true
ws.delete(foo); // removes foo from the set
ws.has(foo); // false, foo has been removed
ws.has(bar); // true, bar is retained
实例方法
add
add() 方法在 WeakSet 对象的最后一个元素后添加新的对象。
const weakset1 = new WeakSet();
const object1 = {};
weakset1.add(object1);
console.log(weakset1.has(object1));
// expected output: true
try {
weakset1.add(1);
} catch (error) {
console.log(error);
// expected output: "Error: Invalid value used in weak set" in Chrome
// expected output: "TypeError: WeakSet value must be an object, got the number 1" in Firefox
}
delete
delete() 方法从 WeakSet 对象中移除指定的元素。
const weakset1 = new WeakSet();
const object1 = {};
weakset1.add(object1);
console.log(weakset1.has(object1));
// expected output: true
weakset1.delete(object1);
console.log(weakset1.has(object1));
// expected output: false
has
has() 方法根据 WeakSet 是否存在相应对象返回布尔值。
const weakset1 = new WeakSet();
const object1 = {};
const object2 = {};
weakset1.add(object1);
console.log(weakset1.has(object1));
// expected output: true
console.log(weakset1.has(object2));
// expected output: false
分类:
JavaWeb
, JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!