このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

WeakSet.prototype.delete()

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年9月以降、すべてのブラウザーで利用可能です。

delete()WeakSet インターフェイスのメソッドで、指定された値をこの集合から、存在すれば、取り除きます。

試してみましょう

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

weakset.add(object);

console.log(weakset.has(object));
// 予想される結果: true

weakset.delete(object);

console.log(weakset.has(object));
// 予想される結果: false

構文

js
weakSetInstance.delete(value)

引数

value

このWeakSet オブジェクトから取り除く値。オブジェクトの比較は、値ではなく参照によって行われます。

返値

WeakSet オブジェクト内の値が正常に取り除かれた場合、true を返します。WeakSet 内にその値が見つからない場合、false を返します。value がオブジェクトまたは 未登録シンボルでない場合は、常に false を返します。

delete() メソッドの使用

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

ws.add(window);

ws.delete(obj); // false を返します。削除する obj が見つかりません。
ws.delete(window); // true を返します。正常に削除されます。

ws.has(window); // false を返します。 window はもう WeakSet の中にないからです。

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-weakset.prototype.delete

ブラウザーの互換性

関連情報