WeakMap.prototype.getOrInsert()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die getOrInsert() Methode von WeakMap Instanzen gibt den Wert zurück, der dem angegebenen Schlüssel in diesem WeakMap entspricht. Wenn der Schlüssel nicht vorhanden ist, 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 Standardwerts aufwändig ist, sollten Sie stattdessen WeakMap.prototype.getOrInsertComputed() verwenden, das einen Rückruf zur Berechnung des Standardwerts nur dann benötigt, wenn es tatsächlich erforderlich ist.
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
getOrInsert(key, defaultValue)
Parameter
key-
Der Schlüssel des Werts, der aus dem
WeakMapObjekt zurückgegeben werden soll. Muss entweder ein Objekt oder ein nicht registriertes Symbol sein. Objektschlüssel werden nach Referenz verglichen, nicht nach Wert. defaultValue-
Der Wert, der eingefügt und zurückgegeben wird, wenn der Schlüssel nicht bereits im
WeakMapObjekt vorhanden ist.
Rückgabewert
Der Wert, der dem angegebenen Schlüssel im WeakMap Objekt zugeordnet ist. Wenn der Schlüssel nicht gefunden werden kann, wird undefined zurückgegeben.
Ausnahmen
TypeError-
Wird ausgelöst, wenn
keykein Objekt oder ein nicht registriertes Symbol ist.
Beispiele
>Verwendung von getOrInsert()
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
Loading…