Cette fonction, proposition pour ECMAScript 6 (Harmony), est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.
Reflect est un objet natif qui fournit des méthodes pour les opérations qui peuvent être intercepter en JavaScript (via les proxies). Les méthodes de cet objet sont les mêmes que celles des gestionnaires de proxy. Reflect n'est pas une fonction (y compris pour construire un objet).
Description
Contrairement à la plupart des objets globaux, Reflect n'est pas un constructeur. Il ne peut pas être utilisé avec l'opérateur new ou être invoqué comme une fonction. Les propriétés et méthodes de Reflect sont statiques (comme pour celles de l'objet Math).
Méthodes
L'objet Reflect fournit des fonctions statiques qui ont les mêmes noms que les méthodes des gestionnaires de proxy et dont certaines correspondent à celles Object :
Reflect.apply()- Appelle une fonction cible avec les arguments définis par le paramètres
args. Voir aussiFunction.prototype.apply(). Reflect.construct()- L'opérateur
newcomme fonction. C'est équivalent ànew cible(...args). Reflect.defineProperty()- Semblable à
Object.defineProperty(). Renvoie unBoolean. Reflect.deleteProperty()- L'opérateur
deletecomme fonction. C'est équivalent àdelete cible[nom]. Reflect.enumerate()- Semblable à la boucle
for...in. Renvoie un itérateur sur les propriétés énumérables (propres et héritées) de l'objet cible. Reflect.get()- Une fonction qui renvoie la valeur d'une propriété.
Reflect.getOwnPropertyDescriptor()- Semblable à
Object.getOwnPropertyDescriptor(). Renvoie un descripteur de propriété si la propriété existe sur l'objet,undefinedsinon. Reflect.getPrototypeOf()- Identique à
Object.getPrototypeOf(). Reflect.has()- L'opérateur
incomme fonction. Renvoie un booléen qui indique si une telle propriété existe pour l'objet (qu'elle soit directement rattachée ou héritée). Reflect.isExtensible()- La même fonction que
Object.isExtensible(). Reflect.ownKeys()- Renvoie un tableau de chaînes de caractères qui correspondent aux noms des propriétés propres (celles qui ne sont pas héritées) de l'objet.
Reflect.preventExtensions()- Semblable à
Object.preventExtensions(). Renvoie unBoolean. Reflect.set()- Une fonction qui affecte des valeurs à des propriétés. Renvoie un
Booleanqui vauttruesi la mise à jour a bien été effectuée. Reflect.setPrototypeOf()- Une fonction qui permet de définir le prototype d'un objet.
Spécifications
| Spécification | Statut | Commentaires |
|---|---|---|
| ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Reflect' dans cette spécification. |
Standard | Définition initiale. |
Compatibilité des navigateurs
| Fonctionnalité | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Support simple | 44 | (Oui) | 42 (42) | Pas de support | Pas de support | Pas de support |
| Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Support simple | Pas de support | Pas de support | 42.0 (42) | Pas de support | Pas de support | Pas de support |