WeakMap() Konstruktor

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Der WeakMap() Konstruktor erstellt WeakMap Objekte.

Syntax

js
new WeakMap()
new WeakMap(iterable)

Note: WeakMap() kann nur mit new konstruiert werden. Ein Versuch, ihn ohne new aufzurufen, führt zu einem TypeError.

Parameter

iterable

Ein Array oder ein anderes iterierbares Objekt, das ein zweielementiges array-ähnliches Objekt erzeugt, dessen erstes Element ein Wert ist, der als WeakMap-Schlüssel verwendet wird, und dessen zweites Element der Wert ist, der diesem Schlüssel zugeordnet wird. Jedes Schlüssel-Wert-Paar wird der neuen WeakMap hinzugefügt. null wird als undefined behandelt.

Beispiele

Verwendung von WeakMap

js
const wm1 = new WeakMap();
const wm2 = new WeakMap();
const wm3 = new WeakMap();
const o1 = {};
const o2 = function () {};
const o3 = window;

wm1.set(o1, 37);
wm1.set(o2, "azerty");
wm2.set(o1, o2); // a value can be anything, including an object or a function
wm2.set(o3, undefined);
wm2.set(wm1, wm2); // keys and values can be any objects. Even WeakMaps!

wm1.get(o2); // "azerty"
wm2.get(o2); // undefined, because there is no key for o2 on wm2
wm2.get(o3); // undefined, because that is the set value

wm1.has(o2); // true
wm2.has(o2); // false
wm2.has(o3); // true (even if the value itself is 'undefined')

wm3.set(o1, 37);
wm3.get(o1); // 37

wm1.has(o1); // true
wm1.delete(o1);
wm1.has(o1); // false

Spezifikationen

Specification
ECMAScript Language Specification
# sec-weakmap-constructor

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch