WeakSet 实例的 add() 方法在该 WeakSet 对象的末尾追加一个新的对象。
{{InteractiveExample("JavaScript Demo: WeakSet.Prototype.add()", "taller")}}
```js interactive-example 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-nolint
add(value)
参数
value- : 必须是对象或非全局注册的符号。将要添加到
WeakSet集合中的值。
- : 必须是对象或非全局注册的符号。将要添加到
返回值
该 WeakSet 对象。
异常
TypeError- : 如果
value不是一个对象或非全局注册的符号,则抛出该异常。
- : 如果
示例
使用 add
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”