WeakMap() constructor
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.
The WeakMap()
constructor creates WeakMap
objects.
Syntax
Parameters
iterable
-
An
Array
or other iterable object that produces a two-element array-like object whose first element is a value that will be used as aWeakMap
key and whose second element is the value to associate with that key. Each key-value pair will be added to the newWeakMap
. null is treated as undefined.
Examples
Using 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
Specifications
Specification |
---|
ECMAScript Language Specification # sec-weakmap-constructor |
Browser compatibility
BCD tables only load in the browser