>  기사  >  웹 프론트엔드  >  JavaScript의 Reflect에 대한 자세한 소개(예제 포함)

JavaScript의 Reflect에 대한 자세한 소개(예제 포함)

不言
不言앞으로
2018-12-10 17:57:404469검색

이 기사는 JavaScript의 Reflect에 대한 자세한 소개를 제공합니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Reflect는 JavaScript 작업을 가로채는 메서드를 제공하는 내장 개체입니다. 방법은 프록시 핸들러와 동일합니다. Reflect는 함수 객체가 아니므로 구성할 수 없습니다.

    new Reflect() //错误的写法

Reflect는
정적 메서드를 제공합니다. 정적 메서드는 객체 자체를 통해서만 액세스할 수 있습니다.
1. Reflect.construct()
3.
4. Reflect.deleteProperty()
5. Reflect.get()
7. Reflect.getOwnPropertyDescriptor()
9. , Reflect.isExtensible()
11, Reflect.ownKeys()
12, Reflect.preventExtensions()
13, Reflect.set()
14, Reflect.setPrototypeOf()

정적 메서드 사용:
demo1: Reflect 사용 .get()은 대상 객체의 지정된 키 값을 가져옵니다.

let obj = {
    a: 1
};

let s1 = Reflect.get(obj, "a")
console.log(s1) // 1
demo1의 get() 메서드는 obj 객체를 가로채서 키 a로 값을 읽습니다. 물론 a의 값은 Reflect 없이도 읽을 수 있습니다.


demo2: Reflect.apply를 사용하여 지정된 매개변수를 대상 함수 플로어에 전달합니다.

const s2 = Reflect.apply(Math.floor, undefined, [1.75]); 
console.log(s2) // 1
/ /Reflect.apply()提供了3个参数,
// 第一个参数是反射的函数,后面2个参数才是和数组的apply一致。

demo2의 예는 Math.floor 메서드를 가로채고 매개변수를 전달하고 반환 값을 s2에 할당하여 반환 값을 읽어야 할 때 s2를 호출할 수 있도록 하는 것으로 이해될 수 있습니다.

demo3: Reflect.ownKeys를 사용하여 객체의 키 가져오기

    console.log(Reflect.ownKeys({"a":0,"b":1,"c":2,"d":3})); //输出 :["a", "b", "c", "d"]
    console.log(Reflect.ownKeys([])); // ["length"]      
    var sym = Symbol.for("comet");      
    var sym2 = Symbol.for("meteor");      
    var obj = {
        [sym]: 0, "str": 0, "773": 0, "0": 0,      
        [sym2]: 0, "-1": 0, "8": 0, "second str": 0
    };      
    Reflect.ownKeys(obj);
     //输出:/ [ "0", "8", "773", "str", "-1", "second str", Symbol(comet), Symbol(meteor) ]

Reflect.ownKeys 정렬은 다음을 기반으로 합니다. 숫자를 먼저 표시하고 숫자를 크기에 따라 정렬한 다음 문자열을 크기에 따라 정렬합니다. 삽입 순서

위 내용은 JavaScript의 Reflect에 대한 자세한 소개(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제