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 2015å¹´9æ.
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
}
æ§æ
ws.add(value);
弿°
value-
å¿ é ã
WeakSetã³ã¬ã¯ã·ã§ã³ã«è¿½å ããè¦ç´ ã®å¤ã§ãã
è¿å¤
WeakSet ãªãã¸ã§ã¯ãã§ãã
ä¾
>add() ã®ä½¿ç¨
js
var ws = new WeakSet();
ws.add(window); //window ãªãã¸ã§ã¯ãã WeakSet ã¸è¿½å
ws.has(window); // true
// WeakSet ã¯å¼æ°ã¨ãã¦ãªãã¸ã§ã¯ãã®ã¿ãåãã¾ãã
ws.add(1);
// çµæã¯ "TypeError: Invalid value used in weak set" (Chrome)
// "TypeError: 1 is not a non-null object" (Firefox)
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-weakset.prototype.add> |