> 웹 프론트엔드 > JS 튜토리얼 > JavaScript의 Reflect에 대한 자세한 소개(예제 포함)

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

不言
풀어 주다: 2018-12-10 17:58:44
앞으로
4497명이 탐색했습니다.

이 기사는 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿