Baseline Widely available
Proxy.revocable()
æ¹æ³å¯ä»¥ç¨æ¥å建ä¸ä¸ªå¯æ¤éç代ç对象ã
Proxy.revocable(target, handler);
target
å°ç¨ Proxy
å°è£
çç®æ 对象ãå¯ä»¥æ¯ä»»ä½ç±»åç对象ï¼å
æ¬åçæ°ç»ï¼å½æ°ï¼çè³å¯ä»¥æ¯å¦å¤ä¸ä¸ªä»£ç对象ã
handler
ä¸ä¸ªå¯¹è±¡ï¼å ¶å±æ§æ¯ä¸æ¹å¯éç彿°ï¼è¿äºå½æ°å®ä¹äºå¯¹åºçæä½è¢«æ§è¡æ¶ä»£ççè¡ä¸ºã
è¿åä¸ä¸ªå
å«äºä»£ç对象æ¬èº«åå®çæ¤éæ¹æ³ç坿¤é Proxy
对象ã
è¯¥æ¹æ³çè¿å弿¯ä¸ä¸ªå¯¹è±¡ï¼å
¶ç»æä¸ºï¼ {"proxy": proxy, "revoke": revoke}
ï¼å
¶ä¸ï¼
proxy
表示æ°çæç代ç对象æ¬èº«ï¼åç¨ä¸è¬æ¹å¼ new Proxy(target, handler)
å建ç代ç对象没ä»ä¹ä¸åï¼åªæ¯å®å¯ä»¥è¢«æ¤éæã
revoke
æ¤éæ¹æ³ï¼è°ç¨çæ¶åä¸éè¦å ä»»ä½åæ°ï¼å°±å¯ä»¥æ¤éæåå®ä¸èµ·çæçé£ä¸ªä»£ç对象ã
䏿¦æä¸ªä»£ç对象被æ¤éï¼å®å°åå¾å ä¹å®å
¨ä¸å¯è°ç¨ï¼å¨å®èº«ä¸æ§è¡ä»»ä½çå¯ä»£çæä½é½ä¼æåº TypeError
å¼å¸¸ï¼æ³¨æï¼å¯ä»£çæä½ä¸å
±æ 14 ç§
ï¼æ§è¡è¿ 14 ç§æä½ä»¥å¤çæä½ä¸ä¼æåºå¼å¸¸ï¼ã䏿¦è¢«æ¤éï¼è¿ä¸ªä»£ç对象便ä¸å¯è½è¢«ç´æ¥æ¢å¤å°åæ¥çç¶æï¼åæ¶åå®å
³èçç®æ 对象以åå¤çå¨å¯¹è±¡é½æå¯è½è¢«åå¾åæ¶æã忬¡è°ç¨æ¤éæ¹æ³ revoke()
åä¸ä¼æä»»ä½ææï¼ä½ä¹ä¸ä¼æ¥éã
var revocable = Proxy.revocable(
{},
{
get(target, name) {
return "[[" + name + "]]";
},
},
);
var proxy = revocable.proxy;
proxy.foo; // "[[foo]]"
revocable.revoke();
console.log(proxy.foo); // æåº TypeError
proxy.foo = 1; // è¿æ¯ TypeError
delete proxy.foo; // 忝 TypeError
typeof proxy; // "object"ï¼å 为 typeof ä¸å±äºå¯ä»£çæä½
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4