操作 | 構文 | 戻り値 | 例外 | 備考 |
---|---|---|---|---|
コンストラクタ | new WeakMap( [ iterable ] ) | WeakMap【弱参照マップ】オブジェクト | TypeError 例外 | |
要素削除 | delete( key ) | true:要素削除 false:要素なし | ||
要素値取得 | get( key ) | 要素の値:要素あり undefined:要素なし | ||
要素有無 | has( key ) | true:要素あり false:要素なし | ||
要素追加・更新 | set( key, value ) | WeakMap【弱参照マップ】オブジェクト | TypeError 例外 | 既存要素:更新 |
TypeError 例外 | new WeakMap【コンストラクタ】 | new なし (関数として呼び出し) |
---|---|---|
入力のiterableが不正 | ||
set【要素追加・更新】 | 入力のkeyがオブジェクト以外 |
var weakMap1 = new WeakMap();
var obj1 = new Object("obj1");
var obj2 = new Object("obj2");
var obj3 = new Object("obj3");
weakMap1.set(obj1, "OBJ1");
weakMap1.set(obj2, "OBJ2");
weakMap1.set(obj3, "OBJ3");
weakMap1.set(obj3, "OBJ3-new"); // 更新
console.log(weakMap1.get(obj1)); // 出力:OBJ1
console.log(weakMap1.get(obj2)); // 出力:OBJ2
console.log(weakMap1.get(obj3)); // 出力:OBJ3-new
console.log(weakMap1.has(obj1)); // 出力:true
console.log(weakMap1.has(obj2)); // 出力:true
console.log(weakMap1.has(obj3)); // 出力:true
obj2 = new Object("obj2"); // 別のオブジェクト
weakMap1.delete(obj3); // 削除
console.log(weakMap1.get(obj1)); // 出力:OBJ1
console.log(weakMap1.get(obj2)); // 出力:undefined (元のオブジェクトなし)
console.log(weakMap1.get(obj3)); // 出力:undefined (削除済)
console.log(weakMap1.has(obj1)); // 出力:true
console.log(weakMap1.has(obj2)); // 出力:false (元のオブジェクトなし)
console.log(weakMap1.has(obj3)); // 出力:false (削除済)
var objA = new Object("objA");
var objB = new Object("objB");
var objC = new Object("objC");
var array = [ [objA, 1], [objB, 3], [objC, 5] ];
var weakMap2 = new WeakMap(array);
console.log(weakMap2.get(objA)); // 出力:1
console.log(weakMap2.get(objB)); // 出力:3
console.log(weakMap2.get(objC)); // 出力:5
var weakMapNg1 = WeakMap(); // TypeError 例外 (new なし)
var weakMapNg2 = new WeakMap(123);// TypeError 例外 (入力のイテレータオブジェクトが不正)
var weakMap3 = new WeakMap();
weakMap3.set(123, "123"); // TypeError 例外 (キーがオブジェクト以外)
WeakMap ( [ iterable ] ) | ||
---|---|---|
ES2022 (13) | ES2021 (12) | ES2020 (11) |
WeakMap.prototype.delete ( key ) | ||
ES2022 (13) | ES2021 (12) | ES2020 (11) |
WeakMap.prototype.get ( key ) | ||
ES2022 (13) | ES2021 (12) | ES2020 (11) |
WeakMap.prototype.has ( key ) | ||
ES2022 (13) | ES2021 (12) | ES2020 (11) |
WeakMap.prototype.set ( key, value ) | ||
ES2022 (13) | ES2021 (12) | ES2020 (11) |