→
WeakMap オブジェクトは、キーが弱く参照されるキーと値の組のコレクションです。キーはオブジェクトでなければならず、値は任意の値を取ることができます。
WeakMap については、のガイド(内)でより詳しく解説しています。
¶省く
//コンソールにて 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); // wm2 には o2 に関連付けられた値が無い為、undefined が返ってきます wm2.get(o3); // 値が undefined と関連付けられている為、undefined が返ってきます wm1.has(o2); // true wm2.has(o2); // false wm2.has(o3); // true (値が関連付けられているならば、たとえ値が 'undefined' であっても true となります) wm3.set(o1, 37); wm3.get(o1); // 37 wm1.has(o1); // true wm1.delete(o1); wm1.has(o1); // false
¶省く