Reflect
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ì.
Reflect ë ì¤ê°ìì ê°ë¡ì± ì ìë JavaScript ìì
ì ëí ë©ìë를 ì ê³µíë ë´ì¥ ê°ì²´ì
ëë¤. ë©ìëì ì¢
ë¥ë íë¡ì ì²ë¦¬ê¸°ì ëì¼í©ëë¤. Reflectë í¨ì ê°ì²´ê° ìëë¯ë¡ ìì±ìë¡ ì¬ì©í ì ììµëë¤.
ì¤ëª
ë¤ë¥¸ ëë¶ë¶ì ì ì ê°ì²´ì ë¤ë¥´ê², Reflectë ìì±ìê° ìëëë¤. ë°ë¼ì í¨ìì²ë¼ í¸ì¶íê±°ë new ì°ì°ìë¡ ì¸ì¤í´ì¤ë¥¼ ë§ë¤ ì ììµëë¤. Math ê°ì²´ì²ë¼, Reflectì 모ë ìì±ê³¼ ë©ìëë ì ì ì
ëë¤.
Reflect ê°ì²´ì ì ì ë©ìë ì´ë¦ì íë¡ì ì²ë¦¬ê¸° ë©ìëì ì´ë¦ê³¼ ê°ìµëë¤.
ì¼ë¶ ë©ìëë Objectìë ì¡´ì¬íë ë©ìëì´ì§ë§ ì½ê°ì ì°¨ì´ê° ììµëë¤.
ì ì ë©ìë
Reflect.apply()-
ëì í¨ì를 주ì´ì§ 매ê°ë³ìë¡ í¸ì¶í©ëë¤.
Function.prototype.apply()ë ì°¸ê³ íì¸ì. Reflect.construct()-
í¨ìë¡ ì¬ì©íë
newì°ì°ìì ëë¤.new target(...args)ì í¸ì¶íë ê²ê³¼ ê°ìµëë¤. ë¤ë¥¸ íë¡í íì ì ì§ì íë ì¶ê° 기ë¥ë ê°ì§ê³ ììµëë¤. Reflect.defineProperty()-
Object.defineProperty()ì ë¹ì·í©ëë¤.Booleanì ë°íí©ëë¤. Reflect.deleteProperty()-
í¨ìë¡ ì¬ì©íë
deleteì°ì°ìì ëë¤.delete target[name]ì í¸ì¶íë ê²ê³¼ ê°ìµëë¤. Reflect.get()-
ëì ìì±ì ê°ì ë°ííë í¨ìì ëë¤.
Reflect.getOwnPropertyDescriptor()-
Object.getOwnPropertyDescriptor()ì ë¹ì·í©ëë¤. 주ì´ì§ ìì±ì´ ëì ê°ì²´ì ì¡´ì¬íë©´, ê·¸ ìì±ì ìì ì를 ë°íí©ëë¤. ê·¸ë ì§ ìì¼ë©´undefined를 ë°íí©ëë¤. Reflect.getPrototypeOf()-
Object.getPrototypeOf()ì ê°ìµëë¤. Reflect.has()-
í¨ìë¡ ì¬ì©íë
inì°ì°ìì ëë¤. ìì ì, í¹ì ììí ìì±ì´ ì¡´ì¬íëì§ ëíë´ëBooleanì ë°íí©ëë¤. Reflect.isExtensible()-
Object.isExtensible()ê³¼ ê°ìµëë¤. Reflect.ownKeys()-
ëì ê°ì²´ì ìì²´ í¤(ììíì§ ìì í¤) 목ë¡ì ë°°ì´ë¡ ë°íí©ëë¤.
Reflect.preventExtensions()-
Object.preventExtensions()ì ë¹ì·í©ëë¤.Booleanì ë°íí©ëë¤. Reflect.set()-
ìì±ì ê°ì í ë¹íë í¨ìì ëë¤. í ë¹ ì±ê³µ ì¬ë¶ë¥¼ ëíë´ë
Booleanì ë°íí©ëë¤. Reflect.setPrototypeOf()-
ê°ì²´ì íë¡í íì ì ì§ì íë í¨ìì ëë¤. ì§ì ì±ê³µ ì¬ë¶ë¥¼ ëíë´ë
Booleanì ë°íí©ëë¤.
ëª ì¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-reflect-object> |
ìì
>ê°ì²´ê° í¹ì ìì±ì ê°ì§ê³ ìëì§ ê²ì¬í기
const duck = {
name: "Maurice",
color: "white",
greeting: function () {
console.log(`Quaaaack! My name is ${this.name}`);
},
};
Reflect.has(duck, "color");
// true
Reflect.has(duck, "haircut");
// false
ê°ì²´ ìì²´ í¤ë¥¼ ë°íí기
Reflect.ownKeys(duck);
// [ "name", "color", "greeting" ]
ê°ì²´ì ìë¡ì´ ìì± ì¶ê°í기
Reflect.set(duck, "eyes", "black");
// returns "true" if successful
// "duck" now contains the property "eyes: 'black'"