Reflect est un objet natif qui fournit des méthodes pour les opérations qui peuvent être interceptées 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 aussi Function.prototype.apply().
Reflect.construct()
 L'opérateur new comme fonction. C'est équivalent à new cible(...args). Cette méthode permet également d'indiquer un prototype différent.
Reflect.defineProperty()
Semblable à Object.defineProperty(). Renvoie un Boolean.
Reflect.deleteProperty()
L'opérateur delete comme fonction. C'est équivalent à delete cible[nom].
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, undefined sinon.
Reflect.getPrototypeOf()
Identique à Object.getPrototypeOf().
Reflect.has()
L'opérateur in comme 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 un Boolean.
Reflect.set()
Une fonction qui affecte des valeurs à des propriétés. Renvoie un Boolean qui vaut true si 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 État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Reflect' dans cette spécification.
Standard Définition initiale.
ECMAScript Latest Draft (ECMA-262)
La définition de 'Reflect' dans cette spécification.
Projet Retrait de Reflect.enumerate

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung InternetNode.js
Support simpleChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
applyChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
constructChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
definePropertyChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
deletePropertyChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
enumerate
ObsolèteNon-standard
Chrome Aucun support NonEdge Aucun support ? — 15Firefox Aucun support NonIE Aucun support NonOpera Aucun support NonSafari Aucun support NonWebView Android Aucun support NonChrome Android Aucun support NonEdge Mobile Aucun support NonFirefox Android Aucun support NonOpera Android Aucun support NonSafari iOS Aucun support NonSamsung Internet Android Aucun support Nonnodejs Aucun support Non
getChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
getOwnPropertyDescriptorChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
getPrototypeOfChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
hasChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
isExtensibleChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
ownKeysChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
preventExtensionsChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
setChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
setPrototypeOfChrome Support complet 49Edge Support complet 12Firefox Support complet 42IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Edge Mobile Support complet OuiFirefox Android Support complet 42Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Obsolète. Les nouveaux sites web ne doivent pas utiliser cette fonctionnalité.
Obsolète. Les nouveaux sites web ne doivent pas utiliser cette fonctionnalité.

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight, jlowcs
Dernière mise à jour par : SphinxKnight,