WeakMap() コンストラクター
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
WeakMap()
コンストラクターは、キーが弱く参照されている、キーと値の組のコレクションである WeakMap
オブジェクトを生成します。キーはオブジェクトでなければならず、値は任意の値を指定することができます。
WeakMap
については、キー付きコレクションの WeakMap オブジェクトの節を参照してください。
構文
new WeakMap([iterable])
引数
iterable
-
iterable は配列などの反復可能オブジェクトであり、その要素はキーと値の組 (2 要素の配列) となります。それぞれのキーと値の組は、新しい WeakMap に追加されます。 null は undefined として扱われます。
例
WeakMap の使用
js
const wm1 = new WeakMap(),
wm2 = new WeakMap(),
wm3 = new WeakMap();
const o1 = {},
o2 = function () {},
o3 = window;
wm1.set(o1, 37);
wm1.set(o2, "azerty");
wm2.set(o1, o2); // 値は何でもよく、オブジェクトでも関数でもよい
wm2.set(o3, undefined);
wm2.set(wm1, wm2); // キーと値はあらゆるオブジェクトになれる。 WeakMap も同様。
wm1.get(o2); // "azerty"
wm2.get(o2); // undefined、 o2 というキーが wm2 にないため
wm2.get(o3); // undefined、 設定された値がそうであるため
wm1.has(o2); // true
wm2.has(o2); // false
wm2.has(o3); // true (値自身が 'undefined' であっても)
wm3.set(o1, 37);
wm3.get(o1); // 37
wm1.has(o1); // true
wm1.delete(o1);
wm1.has(o1); // false
仕様書
Specification |
---|
ECMAScript Language Specification # sec-weakmap-constructor |
ブラウザーの互換性
BCD tables only load in the browser