ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript における WeakMap と WeakSet の物語: 忘れられた秘密の守護者

JavaScript における WeakMap と WeakSet の物語: 忘れられた秘密の守護者

Susan Sarandon
リリース: 2024-12-01 02:54:09
オリジナル
869 人が閲覧しました

A Tale of WeakMap and WeakSet in JavaScript: The Guardians of Forgotten Secrets

むかしむかし、JavaScript の神秘的な国では、WeakMapWeakSet という 2 つの特別なデータ構造が影で静かに存在していました。彼らは、いとこであるマップやセットほど派手ではありませんでしたが、記憶管理という魔法の領域においてかけがえのない存在にする秘密の力を持っていました。


物語の始まり: 忘れられた秘密の問題

デヴという名前の賢い老魔法使いがいて、彼はしばしば大規模な魔法のプロジェクトに取り組みました。彼には共通の問題がありました。マップまたはセットにオブジェクトを保存すると、それらのオブジェクトは、パーティーから出ようとしないゲストのように永久に残るのです。たとえ不要になったとしても、それらは残り、王国の貴重な記憶を占めていました。

開発者は、「後片付けを気にせずに、シークレットを一時的に保存する方法があればどうなるでしょうか?」

と考えました。

WeakMap と WeakSet の登場

ある日、メッセージが書かれた不思議な巻物が届きました:

WeakMapWeakSet を使用して、忘れられた秘密を処理します。必要がなくなったら消えます。」

興味をそそられた開発者は、WeakMapWeakSet を召喚しました。


WeakMap: 秘密鍵の管理者

WeakMap 自体が紹介されました:

「私はキーと値のペアを保持していますが、キーはオブジェクトである必要があります。キーがなくなったらペアを消去しますのでご安心ください。」

開発者がテストしました:

let key = { id: 1 }; // The magical key
let weakMap = new WeakMap();

weakMap.set(key, "This is a secret"); // Storing a secret

console.log(weakMap.get(key)); // Output: This is a secret

// If the key is forgotten:
key = null;

// The secret vanishes from WeakMap, cleaned by the garbage collector
ログイン後にコピー

WeakMap の説明:

「ユーザー セッションの追跡や結果のキャッシュなど、オブジェクトに関するプライベート メタデータの保存に最適です。」


WeakSet: サイレントウォッチャー

WeakSet が前進しました:

「オブジェクトも保存しますが、オブジェクトのみです。オブジェクトが消えると、セット内のそのメンバーも消えます。」

開発者はそれを試してみることにしました:

let obj = { name: "Mystical Object" };
let weakSet = new WeakSet();

weakSet.add(obj); // Adding the object to the WeakSet

console.log(weakSet.has(obj)); // Output: true

// If the object is forgotten:
obj = null;

// The object is automatically removed from WeakSet
ログイン後にコピー

WeakSet の続き:

「変更を監視する DOM 要素など、一時的に存在する必要があるオブジェクトを追跡するのに最適です。」


WeakMap と WeakSet が特別な理由

Dev は、彼らと協力しながら、なぜこれらの構造がユニークなのかを理解しました。

  1. 自動クリーンアップ: WeakMap および WeakSet 内のオブジェクトは、他の場所で参照されなくなったときに自動的にガベージ コレクションされます。
  2. No Size プロパティ: シークレットを軽量かつ不可視に保ちたいため、サイズやイテレーターがありません。
  3. メモリ効率: 物事をゆるく保持し、適切なタイミングで手放す風のようなものです。

この物語の教訓

開発者は新しいツールに満足していました。 WeakMap と WeakSet は、メモリを効率的に管理し、プライベート データを安全に保つための彼の忠実な味方になりました。魔法使いは、彼らが常に正しい選択であるとは限らないが、適切な状況では彼らの魔法が非常に貴重であることを学びました。

そのため、JavaScript の国では秘密は安全に保たれ、メモリが再び無駄になることはありませんでした。

以上がJavaScript における WeakMap と WeakSet の物語: 忘れられた秘密の守護者の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート