WeakMap.prototype.set()
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 set() method of WeakMap instances adds a new entry with a specified key and value to this WeakMap, or updates an existing entry if the key already exists.
Try it
const weakmap = new WeakMap();
const object1 = {};
const object2 = {};
weakmap.set(object1, "foo");
weakmap.set(object2, "bar");
console.log(weakmap.get(object1));
// Expected output: "foo"
console.log(weakmap.get(object2));
// Expected output: "bar"
Syntax
js
set(key, value)
Parameters
key-
The key of the entry to add to or modify within the
WeakMapobject. Must be either an object or a non-registered symbol. Object keys are compared by reference, not by value. value-
The value of the entry to add to or modify within the
WeakMapobject. Can be any value.
Return value
The WeakMap object.
Exceptions
TypeError-
Thrown if
keyis not an object or a non-registered symbol.
Examples
>Using set()
js
const wm = new WeakMap();
const obj = {};
// Add new elements to the WeakMap
wm.set(obj, "foo").set(window, "bar"); // chainable
// Update an element in the WeakMap
wm.set(obj, "baz");
// Using a non-registered symbol as key
const sym = Symbol("foo");
wm.set(sym, "baz");
wm.set(Symbol.iterator, "qux");
Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-weakmap.prototype.set> |
Browser compatibility
Loading…