Es waren einmal im mystischen Land von JavaScript zwei spezielle Datenstrukturen, die still im Schatten lebten: WeakMap und WeakSet. Sie waren nicht so auffällig wie ihre Cousins Map und Set, aber sie hatten eine geheime Kraft, die sie im magischen Bereich der Speicherverwaltung unersetzlich machte.
Es gab einen weisen alten Zauberer namens Dev, der oft an großen magischen Projekten arbeitete. Er hatte ein häufiges Problem: Wann immer er Objekte in einer Karte oder einem Set speicherte, blieben diese Objekte für immer bestehen, wie Gäste, die eine Party nicht verlassen wollten. Auch wenn sie nicht mehr gebraucht wurden, blieben sie im Königreich und prägten wertvolle Erinnerungen.
Dev dachte: „Was wäre, wenn es eine Möglichkeit gäbe, Geheimnisse vorübergehend aufzubewahren, ohne mir Gedanken über das Aufräumen hinter mir machen zu müssen?“
Eines Tages traf eine mysteriöse Schriftrolle mit einer Nachricht ein:
„Verwenden Sie WeakMap und WeakSet, um mit Ihren vergessenen Geheimnissen umzugehen. Sie verschwinden, wenn sie nicht mehr benötigt werden.“
Fasziniert rief Dev WeakMap und WeakSet herbei.
WeakMap stellte sich vor:
„Ich halte Schlüssel-Wert-Paare, aber meine Schlüssel müssen Objekte sein. Wenn der Schlüssel verschwindet, lösche ich das Paar, ohne dass Sie sich Sorgen machen müssen.“
Dev hat es getestet:
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 erklärt:
„Ich bin perfekt zum Speichern privater Metadaten über Objekte geeignet, etwa zum Verfolgen von Benutzersitzungen oder zum Zwischenspeichern von Ergebnissen.“
WeakSet trat vor:
„Ich speichere auch Objekte, aber nur Objekte. Wenn ein Objekt verschwindet, verschwindet auch seine Mitgliedschaft in meinem Set.“
Dev hat beschlossen, es auszuprobieren:
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 Fortsetzung:
„Ich bin ideal zum Verfolgen von Objekten, die vorübergehend vorhanden sein müssen, z. B. DOM-Elemente, die auf Änderungen beobachtet werden.“
Als Dev mit ihnen arbeitete, wurde ihm klar, warum diese Strukturen einzigartig waren:
Dev war von seinen neuen Werkzeugen begeistert. WeakMap und WeakSet wurden zu seinen treuen Verbündeten bei der effizienten Speicherverwaltung und der Sicherheit privater Daten. Der Zauberer erfuhr, dass sie zwar nicht immer die richtige Wahl waren, ihre Magie jedoch in den richtigen Situationen von unschätzbarem Wert war.
Und so blieben die Geheimnisse im Land von JavaScript sicher und Speicher wurde nie wieder verschwendet.
Das obige ist der detaillierte Inhalt vonEine Geschichte von WeakMap und WeakSet in JavaScript: Die Wächter vergessener Geheimnisse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!