WeakMap() コンストラクター
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
WeakMap() コンストラクターは、WeakMap オブジェクトを生成します。
構文
js
new WeakMap()
new WeakMap(iterable)
引数
iterable-
Arrayまたはその他の反復可能オブジェクト で、2 要素の配列風オブジェクトを生成するものです。最初の要素はWeakMapのキーとして使用される値であり、2 番目の要素はそのキーに関連付ける値です。それぞれのキーと値の組は新しいWeakMapに追加されます。nullはundefinedとして扱われます。
例
>WeakMap の使用
js
const wm1 = new WeakMap();
const wm2 = new WeakMap();
const wm3 = new WeakMap();
const o1 = {};
const o2 = () => {};
const 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® 2026 Language Specification> # sec-weakmap-constructor> |