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

瀏覽器相容性

另見