Proxy() constructor
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2016ë 9ì.
Proxy ìì±ìë Proxy ê°ì²´ë¥¼ ë§ëë ë° ì¬ì©ë©ëë¤.
구문
new Proxy(target, handler);
매ê°ë³ì
ì¤ëª
Proxy() ìì±ì를 ì¬ì©íì¬ ì Proxy ê°ì²´ë¥¼ ë§ëëë¤. ì´ ìì±ìë ë ê°ì§ íì ì¸ì를 ì¬ì©í©ëë¤.
targetì íë¡ì를 ë§ë¤ë ¤ë ëì ê°ì²´ì ëë¤.handlerë ìì ì´ ìíë ë íë¡ìì ëìì ì ìíë ìì±ì´ í¨ìì¸ ê°ì²´ì ëë¤.
ë¹ í¸ë¤ë¬ë ê±°ì 모ë ë©´ìì ëì ê°ì²´ì ëê°ì ëìì íë íë¡ìê° ìì±ëë©°, handler ê°ì²´ìì í¨ìì ì§í©ì ì ìíì¬ íë¡ìì í¹ì ëìì 커ì¤í
í ì ììµëë¤. ì를 ë¤ì´, get()ì ì ìíì¬ ëì ìì± ì ê·¼ìì ì¬ì©ì ì ì ë²ì ì ì ê³µí ì ììµëë¤.
Handler í¨ì
ì´ ì¹ì ììë ì ìí ì ìë 모ë ì²ë¦¬ê¸° í¨ì를 ëì´í©ëë¤. ì²ë¦¬ê¸° í¨ìë 기본 ëì ê°ì²´ì ëí í¸ì¶ì ê°ë¡ì±ê¸° ë문ì í¸ë©(traps)ì´ë¼ê³ ë í©ëë¤.
handler.apply()-
í¨ì í¸ì¶ì ëí í¸ë©.
handler.construct()-
newì°ì°ìì ëí í¸ë©. handler.defineProperty()-
Object.definePropertyì ëí í¸ë©. handler.deleteProperty()-
deleteì°ì°ìì ëí í¸ë©. handler.get()-
ìì± ê°ì ê°ì ¸ì¤ê¸°(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()-
ìì± ê° ì¤ì (set)ì ëí í¸ë©.
handler.setPrototypeOf()-
Object.setPrototypeOfì ëí í¸ë©.
ìì ë¤
>ì íì íë¡ì ìì± ì ê·¼ì
ì´ ìì ì ëì ê°ì²´ë notProxiedì proxied ìì±ì ê°ì§ê³ ììµëë¤. ì°ë¦¬ë 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"
ëª ì¸ì
| Specification |
|---|
| ECMAScript® 2027 Language Specification > # sec-proxy-constructor > |