← 返回首页
WeakMap() constructor - JavaScript | MDN

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.

In this article

Syntax

js
new WeakMap() new WeakMap(iterable)

Note: WeakMap() can only be constructed with new. Attempting to call it without new throws a TypeError.

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 a WeakMap key and whose second element is the value to associate with that key. Each key-value pair will be added to the new WeakMap. 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 = () => {}; 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® 2027 Language Specification
# sec-weakmap-constructor

Browser compatibility

Enable JavaScript to view this browser compatibility table.

See also