WeakSet() 构造函数

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.

WeakSet() 构造函数创建 WeakSet 对象。

语法

js
new WeakSet()
new WeakSet(iterable)

备注: WeakSet() 构造函数只能使用 new 调用。不使用 new 而直接调用会抛出 TypeError

参数

iterable 可选

如果传入了一个可迭代对象,这个对象的所有元素都会被添加到新的 WeakSet 对象中。null 会被视为 undefined

示例

使用 WeakSet 对象

js
const ws = new WeakSet();
const foo = {};
const bar = {};

ws.add(foo);
ws.add(bar);

ws.has(foo); // true
ws.has(bar); // true

ws.delete(foo); // 将 foo 从集合中移除
ws.has(foo); // false,foo 已经被移除
ws.has(bar); // true,bar 被保留

请注意 foo !== bar。它们是相似的对象,但它们不是同一个对象。因此,它们都会被添加到集合中。

规范

Specification
ECMAScript Language Specification
# sec-weakset-constructor

浏览器兼容性

BCD tables only load in the browser

参见