WeakMap.prototype.set()
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
WeakMap å®ä¾ç set() æ¹æ³æ ¹æ®æå®çé®å¼å¨è¯¥ WeakMap 䏿·»å æ°å
ç´ ã
å°è¯ä¸ä¸
const weakmap1 = new WeakMap();
const object1 = {};
const object2 = {};
weakmap1.set(object1, "foo");
weakmap1.set(object2, "bar");
console.log(weakmap1.get(object1));
// Expected output: "foo"
console.log(weakmap1.get(object2));
// Expected output: "bar"
è¯æ³
js
set(key, value)
åæ°
key-
å¿ é¡»æ¯å¯¹è±¡æéå ¨å±æ³¨åç符å·ãè¦æ·»å å°
WeakMap对象çå ç´ çé®ã value-
ä»»ä½è¦æ·»å å°
WeakMap对象çå ç´ çå¼ã
è¿åå¼
该 WeakMap 对象
å¼å¸¸
TypeError-
妿
key䏿¯ä¸ä¸ªå¯¹è±¡æéå ¨å±æ³¨åç符å·ï¼åæåºè¯¥å¼å¸¸ã
示ä¾
>ä½¿ç¨ set() æ¹æ³
js
const wm = new WeakMap();
const obj = {};
// å°æ°å
ç´ æ·»å å° WeakMap
wm.set(obj, "foo").set(window, "bar"); // é¾å¼è°ç¨
// æ´æ° WeakMap ä¸çå
ç´
wm.set(obj, "baz");
// 使ç¨éå
¨å±æ³¨åç符å·ä½ä¸ºé®
const sym = Symbol("foo");
wm.set(sym, "baz");
wm.set(Symbol.iterator, "qux");
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-weakmap.prototype.set> |