WeakSet.prototype.add() - JavaScript | MDN
Try it
const weakset = new WeakSet();
const object = {};
weakset.add(object);
console.log(weakset.has(object));
// Expected output: true
try {
weakset.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
}
Syntax
Parameters
value-
The value to add to the
WeakSetobject. Must be either an object or a non-registered symbol. Objects are compared by reference, not by value.
Return value
The WeakSet object.
Exceptions
TypeError-
Thrown if
valueis not an object or a non-registered symbol.
Examples
Using add()
js
const ws = new WeakSet();
ws.add(window); // add the window object to the WeakSet
ws.has(window); // true
// WeakSet only takes objects as arguments
ws.add(1);
// results in "TypeError: Invalid value used in weak set" in Chrome
// and "TypeError: 1 is not a non-null object" in Firefox
Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification # sec-weakset.prototype.add |