0Pricing
JavaScript Academy · Lektion

WeakMap und WeakSet – einfache Privatsphäre und Caches

Die Grundlagen von WeakMap und WeakSet kennenlernen: Schlüssel nur als Objekte, keine Größenangabe oder Iteration, Hilfsfunktionen für Privatsphäre und kleine automatisch bereinigte Caches

WeakMap und WeakSet – einfache Privatsphäre und Caches ist eine kostenlose JavaScript Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des JavaScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.

Warum Weak-Collections?

Ziel: Objekten Metadaten hinzufügen, ohne die Speicherbereinigung zu verhindern.

  • WeakMap: Objekt → Wert
  • WeakSet: Objektzugehörigkeit
  • Keine size, keine Iteration
  • Ideal für Datenschutz und Caches
WeakMap und WeakSet – einfache Privatsphäre und Caches — Illustration 1

Grundlagen von WeakMap

WeakMap akzeptiert nur Objekte als Schlüssel und unterstützt set/get/has/delete. Es gibt keine Iteration und keine size-Eigenschaft.

// WeakMap: keys must be objects
const wm = new WeakMap();

const user = { name: "Ayla" };
wm.set(user, { visits: 1 });

console.log("has user?", wm.has(user));
console.log("get meta:", wm.get(user));

// Note: no wm.size, no wm.keys() — not iterable
WeakMap und WeakSet – einfache Privatsphäre und Caches — Illustration 2

Grundlagen von WeakSet

WeakSet enthält Objekte. Es gibt keine Duplikate, keine Iteration und keine size-Eigenschaft.

// WeakSet: store objects without duplicates
const ws = new WeakSet();

const obj1 = {};
const obj2 = {};

ws.add(obj1);
ws.add(obj2);
ws.add(obj1); // duplicate ignored

console.log("has obj1?", ws.has(obj1));

// Note: no ws.size and no iteration
WeakMap und WeakSet – einfache Privatsphäre und Caches — Illustration 3

Datenschutz mit WeakMap

Verwenden Sie eine WeakMap, um API-Objekten versteckte Daten zuzuordnen. Sobald die API-Objekte nicht mehr vorhanden sind, können die Daten vom Garbage Collector eingesammelt werden.

// Privacy helper: store private data outside the object
const _priv = new WeakMap();

function makeCounter() {
  const api = {};
  _priv.set(api, { value: 0 });

  api.inc = function () {
    const box = _priv.get(api);
    box.value = box.value + 1;
    console.log("value", box.value);
  };

  // No public field exposes value directly
  return api;
}

const c = makeCounter();
c.inc();
c.inc();
// console.log(c.value) -> undefined (nothing public)
WeakMap und WeakSet – einfache Privatsphäre und Caches — Illustration 4

Objektbezogener Cache

Erstellen Sie einen objektbezogenen Cache. Einträge verschwinden, sobald auf das Schlüsselobjekt nicht mehr verwiesen wird.

// Cache computed data per object without leaks
const cache = new WeakMap();

function computeLength(doc) {
  // Return cached result if present
  if (cache.has(doc)) {
    return cache.get(doc);
  }
  // Fake "expensive" compute
  const result = (doc.text || "").length;
  cache.set(doc, result);
  return result;
}

const d1 = { text: "hello" };
const d2 = { text: "world!" };

console.log("len d1:", computeLength(d1));
console.log("len d1 cached:", computeLength(d1));
console.log("len d2:", computeLength(d2));

// If d1/d2 become unreachable, their cache entries can disappear automatically
WeakMap und WeakSet – einfache Privatsphäre und Caches — Illustration 5

Einschränkungen und ungeeignete Einsatzfälle

Denken Sie daran:

  • WeakMap und WeakSet unterstützen weder Iteration noch size.
  • Schlüssel müssen Objekte sein.
  • Verwenden Sie Map/Set, wenn Sie Schlüssel auflisten oder Elemente zählen müssen.
WeakMap und WeakSet – einfache Privatsphäre und Caches — Illustration 6

Quiz zu WeakMap und Map

Kurzer Check: Einsatzfall für WeakMap

WeakMap und WeakSet – einfache Privatsphäre und Caches — Illustration 7

Zusammenfassung

Zusammenfassung: Verwenden Sie WeakMap für Datenschutz und Caches mit Zuordnungen von Objekt zu Wert. Verwenden Sie WeakSet für Objektzugehörigkeit ohne Speicherlecks. Denken Sie daran: Nur Objekte als Schlüssel, keine Iteration und keine size-Eigenschaft.

WeakMap und WeakSet – einfache Privatsphäre und Caches — Illustration 8

Häufig gestellte Fragen

Ist die Lektion „WeakMap und WeakSet – einfache Privatsphäre und Caches“ kostenlos?

Ja — der vollständige Text von „WeakMap und WeakSet – einfache Privatsphäre und Caches“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des JavaScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „WeakMap und WeakSet – einfache Privatsphäre und Caches“?

Die Grundlagen von WeakMap und WeakSet kennenlernen: Schlüssel nur als Objekte, keine Größenangabe oder Iteration, Hilfsfunktionen für Privatsphäre und kleine automatisch bereinigte Caches Du übst JavaScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um JavaScript Academy zu starten?

Keine Vorkenntnisse erforderlich. JavaScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 3.

Wie lange dauert die Lektion „WeakMap und WeakSet – einfache Privatsphäre und Caches“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser JavaScript Academy-Lektion Code schreiben und ausführen?

Ja. Jede JavaScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Grundlagen von Map und Set
  2. WeakMap und WeakSet – einfache Privatsphäre und Caches
  3. Iterationsmuster
← Zurück zu JavaScript Academy