JavascriptでweakMapsが必要なのはなぜですか?
WeakMapオブジェクトは、キーが弱く参照されているキーと値のペアのコレクションです。キーはオブジェクトである必要があり、値は任意の値にすることができます。
ウィキペディアによると、弱参照は、強参照とは異なり、ガベージコレクターによるコレクションから参照オブジェクトを保護しない参照です。弱参照によってのみ参照されるオブジェクト(「オブジェクトに到達するすべての参照チェーンには、リンクとして少なくとも1つの弱参照が含まれる」を意味します)は、弱到達可能と見なされ、到達不能として扱われる可能性があるため、いつでも収集できます。
弱いマップを使用して回避できるメモリリークを引き起こす可能性のあるいくつかのユースケース-
-
特定のオブジェクトに関するプライベートデータを保持し、マップへの参照を持つ人々にのみそのオブジェクトへのアクセスを許可します。
-
ライブラリオブジェクトを変更したり、オーバーヘッドを発生させたりすることなく、ライブラリオブジェクトに関するデータを保持します。
-
JSエンジンが同じタイプのオブジェクトに使用する非表示のクラスで問題が発生しないように、そのタイプのオブジェクトが多数存在する小さなオブジェクトのセットに関するデータを保持します。
-
ブラウザにDOMノードなどのホストオブジェクトに関するデータを保持します。
-
外部からオブジェクトに機能を追加します。
-
JavaScriptでオブジェクトをマップします。
マップオブジェクトはES6で導入され、キーと値のペアである要素のコレクションです。マップ内のキーまたは値は、オブジェクトまたはプリミティブ値にすることができます。 以下はJavaScriptのマップオブジェクトのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initia
-
JavaScriptのBlobオブジェクト
blobオブジェクトは、不変のblobオブジェクトを表すために使用され、生データを表すために使用されます。 BLOBには、ファイルと同じようにサイズとmimeタイプのプロパティがあります。ファイルはblobの派生物であり、blobはファイルが使用される場所で使用できます。 以下は、JavaScriptでblobオブジェクトを表示するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name=