Documentación offline JavaScript main

WeakMap.prototype.getOrInsert()

main Documentación oficial Licencia CC-BY-SA-2.5Descargado el 2026-08-02

En esta página

The getOrInsert() method of {{jsxref("WeakMap")}} instances returns the value corresponding to the specified key in this WeakMap. If the key is not present, it inserts a new entry with the key and a given default value, and returns the inserted value.

If the computation of the default value is expensive, consider using {{jsxref("WeakMap.prototype.getOrInsertComputed()")}} instead, which takes a callback to compute the default value only if it's actually needed.

{{InteractiveExample("JavaScript Demo: WeakMap.prototype.getOrInsert()")}}

```js interactive-example 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-nolint
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#

Examples#

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

Specifications#

{{Specifications}}

Browser compatibility#

{{Compat}}

See also#