이 기사는 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) // 1demo1의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!