WeakMap() コンストラクター
BaselineWidely 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); // truewm2.has(o2); // falsewm2.has(o3); // true (値自身が 'undefined' であっても)wm3.set(o1, 37);wm3.get(o1); // 37wm1.has(o1); // truewm1.delete(o1);wm1.has(o1); // false
仕様書
Specification |
---|
ECMAScript® 2026 Language Specification # sec-weakmap-constructor |