ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript での Reflect の詳細な紹介 (例付き)

JavaScript での Reflect の詳細な紹介 (例付き)

不言
不言転載
2018-12-10 17:57:404498ブラウズ

この記事では、JavaScript の Reflect について詳しく説明します (例を示します)。必要な方は参考にしてください。

Reflect は、JavaScript 操作をインターセプトするメソッドを提供する組み込みオブジェクトです。方法はプロキシハンドラと同様です。 Reflect は関数オブジェクトではないため、構築できません。

    new Reflect() //错误的写法

Reflect は
Reflect を使用します。静的メソッドは、オブジェクト自体を通じてのみアクセスできるメソッドを参照します。 construct ()
3、Reflect.defineProperty()
4、Reflect.deleteProperty()
5、Reflect.enumerate()
6、Reflect.get()
7、リフレクト。 getOwnPropertyDescriptor ()
8、Reflect.getPrototypeOf()
9、Reflect.has()
10、Reflect.isExtensible()
11、Reflect.ownKeys()
12、リフレクト。 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 で値を読み取ります。もちろん、Reflect を行わずに a の値を読み取ることもできます。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。