Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】WeakSet::WeakSet() constructorコンストラクタの使い方

WeakSet() constructorコンストラクタの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

WeakSet() constructorクラスは、重複しない一意のオブジェクトのコレクションであるWeakSetオブジェクトを新しく作成するためのクラスです。このクラスは、JavaScriptにおける組み込みのグローバルオブジェクトの一つであり、Setオブジェクトと似ていますが、重要な違いがいくつかあります。

WeakSetに格納できるのはオブジェクトのみであり、文字列や数値、ブール値などのプリミティブ値は格納できません。WeakSetの最も重要な特徴は、その名が示す通り、格納するオブジェクトへの参照が「弱い(weak)」という点です。これは、WeakSetに格納されているオブジェクトが、他のどこからも参照されなくなった場合、JavaScriptのガベージコレクション(不要になったメモリを自動的に解放する仕組み)によってメモリから解放される可能性があることを意味します。オブジェクトがガベージコレクションによって解放されると、WeakSetからも自動的に削除されます。この性質により、メモリリークのリスクを低減し、アプリケーションのメモリ使用量を効率的に管理できます。

しかし、この「弱い」参照の特性ゆえに、WeakSetにはいくつかの制限があります。WeakSetには現在いくつの要素が格納されているかを示すsizeプロパティはなく、また、格納されている要素を順番に処理するためのforEachメソッドやイテレータも提供されていません。これは、ガベージコレクションによっていつ要素が削除されるか予測できないためです。

WeakSetは、例えばDOM要素にイベントリスナーを一時的に追跡したり、特定のオブジェクトが現在アクティブであるかを管理したりするような、オブジェクトのライフサイクルと密接に関連するユースケースで特に有用です。

公式リファレンス: WeakSet() constructor

構文(syntax)

1new WeakSet();

引数(parameters)

iterable = undefined

  • iterable: An iterable object (e.g., Array, Set) whose elements will be added to the new WeakSet. If omitted or undefined, an empty WeakSet is created.

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ