WeakSet.prototype.add()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
WeakSet
实例的 add()
方法在该 WeakSet
对象的末尾追加一个新的对象。
尝试一下
const weakset1 = new WeakSet();
const object1 = {};
weakset1.add(object1);
console.log(weakset1.has(object1));
// Expected output: true
try {
weakset1.add(1);
} catch (error) {
console.log(error);
// Expected output (Chrome): TypeError: Invalid value used in weak set
// Expected output (Firefox): TypeError: WeakSet value must be an object, got 1
// Expected output (Safari): TypeError: Attempted to add a non-object key to a WeakSet
}
语法
js
add(value)
参数
返回值
该 WeakSet
对象。
异常
示例
使用 add
js
const ws = new WeakSet();
ws.add(window); // 将 window 对象添加到 WeakSet
ws.has(window); // true
// WeakSet 只接受对象作为参数
ws.add(1);
// Chrome 中的结果:“TypeError: Invalid value used in weak set”
// Firefox 中的结果:“TypeError: 1 is not a non-null object”
规范
Specification |
---|
ECMAScript® 2025 Language Specification # sec-weakset.prototype.add |
浏览器兼容性
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
add |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.