WeakSet.prototype.delete()

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 2015 年 9 月以来,该特性已在各大浏览器中可用。

delete() 方法是 WeakSet 实例的一个方法,用于从该集合中移除指定的项(如果该项存在于集合中)。

试一试

const weakset = new WeakSet();
const object = {};

weakset.add(object);

console.log(weakset.has(object));
// Expected output: true

weakset.delete(object);

console.log(weakset.has(object));
// Expected output: false

语法

js
weakSetInstance.delete(value)

参数

value

要从 WeakSet 对象中移除的值。对象是根据 引用 进行比较,而不是按值进行比较。

返回值

如果 WeakSet 对象中的某个项已成功移除,则返回 true。如果未找到该项,则返回 false。如果 value 不是对象或 未注册的 Symbol,则始终返回 false

示例

使用 delete()

js
const ws = new WeakSet();
const obj = {};

ws.add(window);

ws.delete(obj); // Returns false. No obj found to be deleted.
ws.delete(window); // Returns true. Successfully removed.

ws.has(window); // Returns false. The window is no longer present in the WeakSet.

规范

规范
ECMAScript® 2026 语言规范
# sec-weakset.prototype.delete

浏览器兼容性

另见