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

View in English Always switch to English

WeakMap.prototype.set()

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月.

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");

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-weakmap.prototype.set

ブラウザーの互換性

関連情報