JavaScriptのWeakMapオブジェクトから要素を取得する際に、`get()`メソッドを使用する方法について解説します。
基本的な使い方
WeakMapから要素を取得するには`get()`メソッドを使用します。このメソッドは、指定したキーに関連付けられた値を返します。
const weakMap = new WeakMap();
const key = {};
weakMap.set(key, "値");
const value = weakMap.get(key);
console.log(value); // "値"キーが存在しない場合
存在しないキーで`get()`を呼び出した場合は`undefined`が返されます。
const weakMap = new WeakMap();
const key = {};
console.log(weakMap.get(key)); // undefined注意点
1. キーはオブジェクトである必要があります。プリミティブ値(文字列や数値など)をキーとして使用することはできません。
const weakMap = new WeakMap();
// エラーが発生
weakMap.set("キー", "値"); // TypeError2. WeakMapは弱い参照を持つため、キーとなるオブジェクトへの参照がなくなると、そのエントリーは自動的に削除されます。
let key = { id: 1 };
const weakMap = new WeakMap();
weakMap.set(key, "値");
key = null; // キーへの参照を削除
// いずれガベージコレクションによってエントリーが削除される実践的な使用例
WeakMapは、オブジェクトに関連するプライベートデータを保持する際に便利です。
const privateData = new WeakMap();
class User {
constructor() {
privateData.set(this, {
name: "山田太郎",
age: 30
});
}
getName() {
return privateData.get(this).name;
}
}
const user = new User();
console.log(user.getName()); // "山田太郎"まとめ
- WeakMapから値を取得するには`get()`メソッドを使用
- 存在しないキーの場合は`undefined`が返される
- キーはオブジェクトのみ使用可能
- プライベートデータの管理に適している
以上の点を押さえておけば、WeakMapの`get()`メソッドを効果的に活用できます。