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.

WeakMap() 생성자는 WeakMap 객체를 생성합니다.

구문

js
new WeakMap()
new WeakMap(iterable)

참고: WeakMap()은 오직 new로만 생성할 수 있습니다. new 없이 호출을 시도하면 TypeError가 발생합니다.

매개변수

iterable

Array 또는 @@iterator 메서드(첫 번째 요소가 WeakMap 키로 사용될 값이고 두 번째 요소가 해당 키에 연결할 값인 두 요소 배열과 같은 객체를 생성하는 이터레이터 객체를 반환)를 시행하는 다른 이터러블 객체. 각 키-값 쌍은 새로운 WeakMap에 추가됩니다. null은 undefined으로 취급합니다.

예제

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); // 값은 함수나 객체처럼 어떤 것이든 가능합니다
wm2.set(o3, undefined);
wm2.set(wm1, wm2); // 키와 값은 어떤 객체라도 가능합니다. 심지어 WeakMap도 됩니다

wm1.get(o2); // "azerty"
wm2.get(o2); // undefined, wm2에서 o2에 해당하는 키가 없습니다
wm2.get(o3); // undefined, set 값이기 때문입니다

wm1.has(o2); // true
wm2.has(o2); // false
wm2.has(o3); // true (값 자체가 'undefined' 일지라도)

wm3.set(o1, 37);
wm3.get(o1); // 37

wm1.has(o1); // true
wm1.delete(o1);
wm1.has(o1); // false

명세서

Specification
ECMAScript Language Specification
# sec-weakmap-constructor

브라우저 호환성

BCD tables only load in the browser

같이 보기