WeakMap.prototype.getOrInsert() - JavaScript | MDN

Try it

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)

Parameters

key

The key of the value to return from the WeakMap object. Must be either an object or a non-registered symbol. Object keys are compared by reference, not by value.

defaultValue

The value to insert and return if the key is not already present in the WeakMap object.

Return value

The value associated with the specified key in the WeakMap object. If the key can't be found, defaultValue is inserted and returned.

Exceptions

TypeError

Thrown if key is not an object or a non-registered symbol.

Examples

Using 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"

Specifications

Specification
ECMAScript® 2027 Language Specification
# sec-weakmap.prototype.getorinsert

Browser compatibility

See also

Help improve MDN

Learn how to contribute

This page was last modified on by MDN contributors.