Baseline Widely available
handler.set()
ë©ìëë ìì± ê°ì ì¤ì ì ìí í¸ë©ì
ëë¤.
const monster1 = { eyeCount: 4 };
const handler1 = {
set(obj, prop, value) {
if (prop === "eyeCount" && value % 2 !== 0) {
console.log("Monsters must have an even number of eyes");
} else {
return Reflect.set(...arguments);
}
},
};
const proxy1 = new Proxy(monster1, handler1);
proxy1.eyeCount = 1;
// Expected output: "Monsters must have an even number of eyes"
console.log(proxy1.eyeCount);
// Expected output: 4
proxy1.eyeCount = 2;
console.log(proxy1.eyeCount);
// Expected output: 2
구문
new Proxy(target, {
set(target, property, value, receiver) {},
});
ë§¤ê° ë³ì
ë¤ì 매ê°ë³ìë set()
ë©ìëì ì ë¬ë©ëë¤. this
ë ì²ë¦¬ê¸°ì ë°ì¸ë©ë©ëë¤.
target
ëì ê°ì²´
property
ì¤ì í ìì±ì ì´ë¦ ëë Symbol
value
ì¤ì í ìì±ì ì ê°
receiver
í ë¹ì´ ì§ìë ìë ê°ì²´ì
ëë¤. ì´ê²ì ì¼ë°ì ì¼ë¡ íë¡ì ìì²´ì
ëë¤. ê·¸ë¬ë set()
ì²ë¦¬ê¸°ë íë¡í íì
ì²´ì¸ì´ë ë¤ìí ë¤ë¥¸ ë°©ë² ë±ì íµí´ ê°ì ì ì¼ë¡ í¸ì¶í ìë ììµëë¤.
ì를 ë¤ì´, ì¤í¬ë¦½í¸ê° obj.name = "jen"
ì ìííëë°, obj
ë íë¡ìê° ìëë©´ì ìì± .name
ì´ ìê³ , íë¡í íì
ì²´ì¸ìë íë¡ìê° ìë¤ê³ ê°ì í´ë´
ìë¤. ì´ë í´ë¹ íë¡ìì set()
ì²ë¦¬ê¸°ê° í¸ì¶ëê³ ëì obj
ê° ìì ìë¡ ì ë¬ë©ëë¤.
set()
ë©ìëë ë¶ë¦¬ì¸ ê°ì ë°íí©ëë¤.
true
를 ë°íí©ëë¤.set()
ë©ìëê° false
를 ë°ííë©´ TypeError
ìì¸ê° ë°ìí©ëë¤.handler.set()
ë©ìëë ìì± ê°ì ì¤ì ì ìí í¸ë©ì
ëë¤.
ì´ í¸ë©ì ë¤ì ìì ì ê°ë¡ì± ì ììµëë¤.
proxy[foo] = bar
ì proxy.foo = bar
Object.create(proxy)[foo] = bar
Reflect.set()
ë¤ì ë¶ë³ ì¡°ê±´ì´ ìë°ëë©´ íë¡ììì TypeError
ê° ë°ìí©ëë¤.
[[Set]]
ìì±ì´ undefined
ì¸ êµ¬ì± ë¶ê°ë¥í ì ê·¼ì ìì±ì¸ ê²½ì°, ìì± ê°ì ì¤ì í ì ììµëë¤.set()
ì²ë¦¬ê¸°ê° false
를 ë°ííë©´ TypeError
ìì¸ê° ë°ìí©ëë¤.ë¤ì ì½ëë ìì± ê°ì ì¤ì íë ê²ì í¸ë©í©ëë¤.
const p = new Proxy(
{},
{
set(target, prop, value, receiver) {
target[prop] = value;
console.log(`property set: ${prop} = ${value}`);
return true;
},
},
);
console.log("a" in p); // false
p.a = 10; // "property set: a = 10"
console.log("a" in p); // true
console.log(p.a); // 10
ëª
ì¸ì ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
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