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));
// Expected output: "foo"

console.log(weakmap.get(object2));
// Expected output: "bar"

語法

js
set(key, value)

引數

key

要新增到 WeakMap 物件中或要在其中修改的條目的鍵。必須是物件或未註冊的 Symbol。物件鍵透過引用進行比較,而不是透過值。

value

要新增到 WeakMap 物件中或要在其中修改的條目的值。可以是任何值。

返回值

WeakMap 物件。

異常

TypeError

如果 key 不是物件或未註冊的 Symbol,則丟擲錯誤。

示例

使用 set()

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

// Add new elements to the WeakMap
wm.set(obj, "foo").set(window, "bar"); // chainable

// Update an element in the WeakMap
wm.set(obj, "baz");

// Using a non-registered symbol as key
const sym = Symbol("foo");
wm.set(sym, "baz");
wm.set(Symbol.iterator, "qux");

規範

規範
ECMAScript® 2026 語言規範
# sec-weakmap.prototype.set

瀏覽器相容性

另見