【JavaScript ECMAScript】WeakMap::WeakMap.prototype.hasインスタンスメソッドの使い方
WeakMap.prototype.has()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
WeakMap.prototype.has()メソッドは、WeakMapオブジェクト内に特定のキーが存在するかどうかを確認するメソッドです。このメソッドは、指定されたkeyが現在のWeakMapオブジェクトのキーとして関連付けられている場合にtrueを返し、そうでない場合はfalseを返します。
WeakMapのキーとして指定できるのは、必ずオブジェクト型である必要があります。文字列、数値、真偽値などのプリミティブ値はキーとして使用できません。もしプリミティブ値をhas()メソッドの引数として渡した場合、常にfalseが返されます。
WeakMapの重要な特性として、キーへの参照が「弱い参照」であることが挙げられます。これは、もしWeakMapのキーとして使用されているオブジェクトが、プログラム内の他のどの場所からも参照されなくなった場合、そのキーとそれに対応する値のペアがJavaScriptエンジンのガベージコレクションによって自動的にメモリから解放される可能性がある、ということを意味します。WeakMap.prototype.has()メソッドは、このガベージコレクションが行われる前で、かつキーがWeakMap内にまだ存在している場合にのみtrueを返します。
この特性により、WeakMap.prototype.has()は、メモリの効率を考慮しつつ、特定のオブジェクトに対して一時的な情報が関連付けられているか、またはその情報がまだ有効であるかを確認する際に非常に有用です。オブジェクトのライフサイクルと連動する形で、関連情報の存在をチェックするために利用されます。
構文(syntax)
1const myWeakMap = new WeakMap(); 2const keyObject = {}; 3myWeakMap.set(keyObject, 'associated value'); 4 5const hasKey = myWeakMap.has(keyObject);
引数(parameters)
key
- key: マップ内に存在するかどうかを確認したいキー。WeakMapはオブジェクトをキーとして使用するため、こちらもオブジェクトである必要があります。
戻り値(return)
boolean
指定されたキーがWeakMap内に存在するかどうかを示す真偽値(trueまたはfalse)を返します。