WeakSet【弱参照一意コレクション】オブジェクトの基本操作
・new WeakSet【コンストラクタ】
・WeakSet.prototype.add【要素追加】メソッド
・WeakSet.prototype.delete【要素削除】メソッド
・WeakSet.prototype.has【要素有無】メソッド

メモ

  • WeakSet弱参照一意コレクション】オブジェクトの基本操作
  • 列挙方法はなし

構文

操作構文戻り値例外備考
コンストラクタnew WeakSet ( [ iterable ] ) WeakSet【弱参照一意コレクション】オブジェクトTypeError 例外
要素追加add ( value ) WeakSet【弱参照一意コレクション】オブジェクトTypeError 例外既存要素:処理なし
要素削除delete ( value ) true:要素削除
false:要素なし
要素有無has ( value ) true:要素あり
false:要素なし

  • iterable:値から成るイテレータオブジェクト 及び それに準ずるもの (値の配列等)
  • value:要素の値

TypeError 例外new WeakSet【コンストラクタ】new なし (関数として呼び出し)
入力のiterableが不正
add【要素追加】入力のvalueがオブジェクト以外

var weakSet1 = new WeakSet();
var obj1 = new Object("obj1");
var obj2 = new Object("obj2");
weakSet1.add(obj1);
weakSet1.add(obj2);
console.log(weakSet1.has(obj1));  // 出力:true
console.log(weakSet1.has(obj2));  // 出力:true

var array = [ obj1, obj2 ];
var weakSet2 = new WeakSet(array);
console.log(weakSet2.has(obj1));  // 出力:true
console.log(weakSet2.has(obj2));  // 出力:true

var weakSetNG1 = WeakSet();         // TypeError 例外 (new なし)
var weakSetNG2 = new WeakSet(123);  // TypeError 例外 (オブジェクト以外)
var weakSet1 = new WeakSet();
var obj1 = new Object("obj1");
var obj2 = new Object("obj2");
weakSet1.add(obj1);
weakSet1.add(obj2);
weakSet1.add(123);                // TypeError 例外 (オブジェクト以外)
console.log(weakSet1.has(obj1));  // 出力:true
console.log(weakSet1.has(obj2));  // 出力:true
weakSet1.delete(obj2);
console.log(weakSet1.has(obj1));  // 出力:true
console.log(weakSet1.has(obj2));  // 出力:false

関連