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

View in English Always switch to English

WeakSet.prototype.add()

Baseline 広く利用可能

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

add()WeakSet インターフェイスのメソッドで、指定された値を、まだ存在しない場合、この集合に挿入します。

試してみましょう

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

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

try {
  weakset.add(1);
} catch (error) {
  console.log(error);
  // 予想される結果 (Chrome): TypeError: Invalid value used in weak set
  // 予想される結果 (Firefox): TypeError: WeakSet value must be an object, got 1
  // 予想される結果 (Safari): TypeError: Attempted to add a non-object key to a WeakSet
}

構文

js
add(value)

引数

value

このWeakSet オブジェクトに追加される値。オブジェクト、または未登録シンボルのどちらかでなければなりません。オブジェクトの比較は、値ではなく参照によって行われます。

返値

この WeakSet オブジェクトです。

例外

TypeError

value がオブジェクトでも未登録シンボルでもない場合に発生します。

add() の使用

js
const ws = new WeakSet();

ws.add(window); //window オブジェクトを WeakSet へ追加

ws.has(window); // true

// WeakSet は引数としてオブジェクトのみを取ります。
ws.add(1);
// 結果は "TypeError: Invalid value used in weak set" (Chrome)
// "TypeError: 1 is not a non-null object" (Firefox)

仕様書

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

ブラウザーの互換性

関連情報