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("キー", "値"); // TypeError

2. 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()`メソッドを効果的に活用できます。