Baseline Widely available
Proxy()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ Proxy
ãªãã¸ã§ã¯ããçæãã¾ãã
new Proxy(target, handler)
ã¡ã¢: Proxy()
ã¯ãnew
ã使ã£ã¦ã®ã¿æ§ç¯ãããã¨ãã§ãã¾ããnew
ãªãã§å¼ã³åºããã¨ããã¨ãTypeError
ãçºçãã¾ãã
target
Proxy
ã§ã©ããããã¿ã¼ã²ããã®ãªãã¸ã§ã¯ãã§ãããããã種é¡ã®ãªãã¸ã§ã¯ããä¾ãã°ãã¤ãã£ãé
åã颿°ãå¥ã®ãããã·ã¼ãªã©ããªããã¨ãã§ãã¾ãã
handler
颿°ãããããã£ã¨ãã¦æã¤ãªãã¸ã§ã¯ãã§ããã®é¢æ°ã§ã Proxy p
ã«å¯¾ãã¦æä½ãè¡ãããå ´åã®æåãå®ç¾©ãã¾ãã
Proxy()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã使ç¨ããã¨ãæ°ãã Proxy
ãªãã¸ã§ã¯ããçæã§ãã¾ãã ãã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ 2 ã¤ã®å¿
é ã®å¼æ°ãåãã¾ãã
target
ã¯ãããã·ã¼ã使ãããªãã¸ã§ã¯ãã§ããhandler
ã¯ãããã·ã¼ã®ã«ã¹ã¿ã åä½ãå®ç¾©ãããªãã¸ã§ã¯ãã§ããhandler ã空ã«ããã¨ãã»ã¨ãã©ãã¹ã¦ã®ç¹ã§ã¿ã¼ã²ããã¨ã¾ã£ããåãããã«æ¯ãèããããã·ã¼ã使ãã¾ãã handler
ãªãã¸ã§ã¯ãä¸ã§é¢æ°ç¾¤ã®ãããããå®ç¾©ãããã¨ã§ããããã·ã¼ã®åä½ã®ç¹å®ã®å´é¢ãã«ã¹ã¿ãã¤ãºãããã¨ãã§ãã¾ããä¾ãã°ã get()
ãå®ç¾©ãããã¨ã§ã ã¿ã¼ã²ããã®ããããã£ã¢ã¯ã»ãµã¼ã®ã«ã¹ã¿ãã¤ãºããããã¼ã¸ã§ã³ãæä¾ãããã¨ãã§ãã¾ãã
ãã®ç¯ã§ã¯ãå®ç¾©ãããã¨ãã§ãããã¹ã¦ã®ãã³ãã©ã¼é¢æ°ãåæãã¾ãããã³ãã©ã¼é¢æ°ã¯ã対象ãªãã¸ã§ã¯ãã®å¼ã³åºãããã©ããããã®ã§ããã©ããã¨å¼ã°ãããã¨ãããã¾ãã
handler.apply()
颿°å¼ã³åºãã®ãã©ããã§ãã
handler.construct()
new
æ¼ç®åã®ãã©ããã§ãã
handler.defineProperty()
Object.defineProperty
ã®ãã©ããã§ãã
handler.deleteProperty()
delete
æ¼ç®åã®ãã©ããã§ãã
handler.get()
ããããã£å¤ã®åå¾ã®ãã©ããã§ãã
handler.getOwnPropertyDescriptor()
Object.getOwnPropertyDescriptor
ã®ãã©ããã§ãã
handler.getPrototypeOf()
Object.getPrototypeOf
ã®ãã©ããã§ãã
handler.has()
in
æ¼ç®åã®ãã©ããã§ãã
handler.isExtensible()
Object.isExtensible
ã®ãã©ããã§ãã
handler.ownKeys()
Object.getOwnPropertyNames
ã Object.getOwnPropertySymbols
ã®ãã©ããã§ãã
handler.preventExtensions()
Object.preventExtensions
ã®ãã©ããã§ãã
handler.set()
ããããã£å¤ã®è¨å®ã®ãã©ããã§ãã
handler.setPrototypeOf()
Object.setPrototypeOf
ã®ãã©ããã§ãã
ãã®ä¾ã§ã¯ãã¿ã¼ã²ãã㯠notProxied
㨠proxied
ã® 2 ã¤ã®ããããã£ãæã£ã¦ãã¾ãã proxied
ã«å¥ã®å¤ãè¿ãããã以å¤ã®ã¢ã¯ã»ã¹ãã¿ã¼ã²ããã«è¨±å¯ãããã³ãã©ã¼ãå®ç¾©ãã¾ãã
const target = {
notProxied: "original value",
proxied: "original value",
};
const handler = {
get(target, prop, receiver) {
if (prop === "proxied") {
return "replaced value";
}
return Reflect.get(...arguments);
},
};
const proxy = new Proxy(target, handler);
console.log(proxy.notProxied); // "original value"
console.log(proxy.proxied); // "replaced value"
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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