Reflect.get()
åºçº¿
广æ³å¯ç¨
èª 2016å¹´9æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
Reflect.get() æ¹æ³ä¸ä» 对象 (target[propertyKey]) ä¸è¯»å屿§ç±»ä¼¼ï¼ä½å®æ¯éè¿ä¸ä¸ªå½æ°æ§è¡æ¥æä½çã
è¯æ³
Reflect.get(target, propertyKey[, receiver])
åæ°
target-
éè¦åå¼çç®æ 对象
propertyKey-
éè¦è·åçå¼çé®å¼
- receiver
-
妿
targetå¯¹è±¡ä¸æå®äºgetterï¼receiverå为getterè°ç¨æ¶çthiså¼ã
è¿åå¼
屿§çå¼ã
å¼å¸¸
å¦æç®æ å¼ç±»å䏿¯ Objectï¼åæåºä¸ä¸ª TypeErrorã
æè¿°
Reflect.getæ¹æ³å
è®¸ä½ ä»ä¸ä¸ªå¯¹è±¡ä¸å屿§å¼ãå°±å¦å屿§è®¿é®å¨ è¯æ³ï¼ä½å´æ¯éè¿å½æ°è°ç¨æ¥å®ç°ã
示ä¾
>ä½¿ç¨ Reflect.get()
js
// Object
var obj = { x: 1, y: 2 };
Reflect.get(obj, "x"); // 1
// Array
Reflect.get(["zero", "one"], 1); // "one"
// Proxy with a get handler
var x = { p: 1 };
var obj = new Proxy(x, {
get(t, k, r) {
return k + "bar";
},
});
Reflect.get(obj, "foo"); // "foobar"
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-reflect.get> |