← 返回首页
WeakMap() コンストラクター - JavaScript | MDN

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

WeakMap() コンストラクター

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.

WeakMap() コンストラクターは、WeakMap オブジェクトを生成します。

In this article

構文

js
new WeakMap() new WeakMap(iterable)

メモ: WeakMap() は new を付けた場合のみ構築できます。new なしで呼び出そうとすると TypeError が発生します。

引数

iterable

Array またはその他の反復可能オブジェクト で、2 要素の配列風オブジェクトを生成するものです。最初の要素は WeakMap のキーとして使用される値であり、2 番目の要素はそのキーに関連付ける値です。それぞれのキーと値の組は新しい WeakMap に追加されます。null は undefined として扱われます。

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); // 値は何でもよく、オブジェクトでも関数でもよい wm2.set(o3, undefined); wm2.set(wm1, wm2); // キーと値はあらゆるオブジェクトになれる。 WeakMap も同様。 wm1.get(o2); // "azerty" wm2.get(o2); // undefined、 o2 というキーが wm2 にないため wm2.get(o3); // undefined、 設定された値がそうであるため 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® 2027 Language Specification
# sec-weakmap-constructor

ブラウザーの互換性

Enable JavaScript to view this browser compatibility table.

関連情報