Maison >interface Web >js tutoriel >Introduction détaillée à Reflect en JavaScript (avec exemples)

Introduction détaillée à Reflect en JavaScript (avec exemples)

不言
不言avant
2018-12-10 17:57:404498parcourir

Cet article vous apporte une introduction détaillée à Reflect en JavaScript (avec des exemples). Il a une certaine valeur de référence. J'espère qu'il vous sera utile.

Reflect est un objet intégré qui fournit des méthodes pour intercepter les opérations JavaScript. La méthode est la même que celle du gestionnaire de proxy. Reflect n'est pas un objet fonction, il n'est donc pas constructible.

    new Reflect() //错误的写法

Reflect utilise
Reflect fournit des méthodes statiques. Les méthodes statiques font référence à des méthodes accessibles uniquement via l'objet lui-même
1. .construct()
3, Reflect.defineProperty()
4, Reflect.deleteProperty()
5, Reflect.enumerate()
6, Reflect.get()
7, Reflect .getOwnPropertyDescriptor()
8、Reflect.getPrototypeOf()
9、Reflect.has()
10、Reflect.isExtensible()
11、Reflect.ownKeys()
12、Reflect .preventExtensions()
13, Reflect.set()
14, Reflect.setPrototypeOf()

Utilisation de méthodes statiques :

demo1 : utilisez Reflect.get() pour obtenir la cible spécification de l'objet La valeur de la clé.

let obj = {
    a: 1
};

let s1 = Reflect.get(obj, "a")
console.log(s1) // 1
La méthode get() de demo1 intercepte l'objet obj puis lit la valeur avec la clé a. Bien entendu, la valeur de a peut également être lue sans Reflect.

démo2 : utilisez Reflect.apply pour transmettre les paramètres spécifiés à l'étage de fonction cible.

const s2 = Reflect.apply(Math.floor, undefined, [1.75]); 
console.log(s2) // 1
/ /Reflect.apply()提供了3个参数,
// 第一个参数是反射的函数,后面2个参数才是和数组的apply一致。
Nous pouvons comprendre l'exemple de demo2 comme interceptant la méthode Math.floor, puis passant les paramètres et attribuant la valeur de retour à s2, afin que nous puissions l'appeler lorsque nous avons besoin de lire le retour valeur s2.

démo3 : Utiliser Reflect.ownKeys pour obtenir les clés de l'objet

    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) ]
Le tri de Reflect.ownKeys est basé sur : afficher les nombres en premier, trier les nombres selon la taille, puis chaîne selon l'ordre d'insertion Trier


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer