尝试一下
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”
规范
| 规范 |
|---|
| ECMAScript® 2027 Language Specification> # sec-weakset.prototype.add> |