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

View in English Always switch to English

WeakMap.prototype.set()

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

set()WeakMap インスタンスのメソッドで、指定されたキーと値をもつ新しい項目を WeakMap オブジェクトへ追加します。すでにそのキーが存在する場合は、項目を更新します。

試してみましょう

const weakmap = new WeakMap();
const object1 = {};
const object2 = {};

weakmap.set(object1, "foo");
weakmap.set(object2, "bar");

console.log(weakmap.get(object1));
// 予想される結果: "foo"

console.log(weakmap.get(object2));
// 予想される結果: "bar"

構文

js
set(key, value)

引数

key

WeakMap オブジェクトの中で追加または変更する項目のキー。オブジェクトまたは非登録シンボルのどちらかでなければなりません。オブジェクトのキーは値ではなく参照として比較されます。

value

WeakMap オブジェクトに追加または変更する項目の値です。任意の値にすることができます。

返値

WeakMap オブジェクトです。

例外

TypeError

key がオブジェクトでも非登録シンボルでもない場合に発生します。

set() メソッドの使用

js
const wm = new WeakMap();
const obj = {};

// WeakMap に新しい項目を追加
wm.set(obj, "foo").set(window, "bar"); // 連結可能

// WeakMap の項目を更新
wm.set(obj, "baz");

// 非登録シンボルをキーとして使用
const sym = Symbol("foo");
wm.set(sym, "baz");
wm.set(Symbol.iterator, "qux");

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-weakmap.prototype.set

ブラウザーの互換性

関連情報