【Node.js24.x】Object::WeakSet()メソッドの使い方
WeakSetメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
WeakSetクラスは、オブジェクトを格納するための特別なコレクションを表すクラスです。JavaScriptに組み込まれているSetとは異なり、WeakSetに格納されたオブジェクトは「弱い参照」として扱われる点が最大の特徴です。これは、WeakSetに格納されているオブジェクトが、他にどこからも参照されなくなった場合、JavaScriptのガベージコレクションの対象となり、メモリから自動的に解放されることを意味します。この仕組みにより、オブジェクトを追跡する際に発生しがちなメモリリークを防ぐことができます。
WeakSetにはオブジェクトのみを格納でき、文字列や数値などのプリミティブ値は格納できません。また、格納されたオブジェクトの数や内容を直接列挙する機能(例えば、for...ofループで全ての要素を取得する機能)は提供されていません。要素を追加するにはadd()メソッド、特定の要素がWeakSet内に存在するかを確認するにはhas()メソッド、要素を削除するにはdelete()メソッドを使用します。
主に、オブジェクトの生存期間に連動してデータを管理したい場合や、DOM要素などのライフサイクルと紐づく情報を効率的に扱う場合に非常に有用です。不要になったオブジェクトが自動的にクリーンアップされるため、堅牢でメモリ効率の良いアプリケーション開発に貢献します。
構文(syntax)
1const weakSet = new WeakSet(); 2 3const obj1 = {}; 4const obj2 = {}; 5 6weakSet.add(obj1); // オブジェクトを追加 7 8console.log(weakSet.has(obj1)); 9console.log(weakSet.has(obj2)); 10 11weakSet.delete(obj1); // オブジェクトを削除 12 13console.log(weakSet.has(obj1));
引数(parameters)
iterable
- iterable: オブジェクトのコレクション (例: Array, Set, Map) で、WeakSet に追加する要素の初期セットとして使用されます。この iterable は、各要素を WeakSet に追加するために反復処理されます。
戻り値(return)
WeakSet
WeakSetコンストラクタは、新しいWeakSetオブジェクトを生成し、それを返します。