Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

WeakMap.prototype.getOrInsert()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Die getOrInsert() Methode von WeakMap Instanzen gibt den Wert zurück, der dem angegebenen Schlüssel in dieser WeakMap entspricht. Ist der Schlüssel nicht vorhanden, fügt sie einen neuen Eintrag mit dem Schlüssel und einem angegebenen Standardwert ein und gibt den eingefügten Wert zurück.

Wenn die Berechnung des Standardwertes teuer ist, sollten Sie überlegen, stattdessen WeakMap.prototype.getOrInsertComputed() zu verwenden, das einen Rückruf akzeptiert, um den Standardwert nur dann zu berechnen, wenn er tatsächlich benötigt wird.

Probieren Sie es aus

const map = new WeakMap([[window, "foo"]]);
console.log(map.getOrInsert(window, "default"));
// Expected output: "foo"

console.log(map.getOrInsert({}, "default"));
// Expected output: "default"

Syntax

js
getOrInsert(key, defaultValue)

Parameter

key

Der Schlüssel des Wertes, der aus dem WeakMap Objekt zurückgegeben werden soll. Muss entweder ein Objekt oder ein nicht registriertes Symbol sein. Objekt-Schlüssel werden durch Referenz und nicht nach Wert verglichen.

defaultValue

Der Wert, der eingefügt und zurückgegeben wird, wenn der Schlüssel im WeakMap Objekt nicht bereits vorhanden ist.

Rückgabewert

Der Wert, der mit dem angegebenen Schlüssel im WeakMap Objekt verknüpft ist. Wenn der Schlüssel nicht gefunden werden kann, wird undefined zurückgegeben.

Ausnahmen

TypeError

Wird ausgelöst, wenn key kein Objekt oder ein nicht registriertes Symbol ist.

Beispiele

Verwendung von getOrInsert()

js
const wm = new WeakMap();
const obj = {};

console.log(wm.get(obj)); // undefined
console.log(wm.getOrInsert(obj, "default")); // "default"
console.log(wm.get(obj)); // "default"
console.log(wm.getOrInsert(obj, "another default")); // "default"

Spezifikationen

Specification
Upsert
# sec-weakmap.prototype.getOrInsert

Browser-Kompatibilität

Siehe auch