Gestionnaire de Proxy (handler)

L'objet gestionnaire d'un proxy est un objet qui contient les trappes de captures (traps) pour le  proxy.

Méthodes

Toutes ces trappes sont optionnelles. Si une trappe n'a pas été définie, le comportement par défaut sera de transmettre l'opération à la cible.

handler.getPrototypeOf()
Une trappe pour Object.getPrototypeOf.
handler.setPrototypeOf()
Une trappe pour Object.setPrototypeOf.
handler.isExtensible()
Une trappe pour Object.isExtensible.
handler.preventExtensions()
Une trappe pour Object.preventExtensions.
handler.getOwnPropertyDescriptor()
Une trappe pour Object.getOwnPropertyDescriptor.
handler.defineProperty()
Une trappe pour Object.defineProperty.
handler.has()
Une trappe pour l'opérateur in.
handler.get()
Une trappe pour l'accès aux valeurs des propriétés.
handler.set()
Une trappe pour la définition des valeurs des propriétés.
handler.deleteProperty()
Une trappe pour l'opérateur delete.
handler.ownKeys()
Une trappe pour Object.getOwnPropertyNames et Object.getOwnPropertySymbols.
handler.apply()
Une trappe pour l'appel d'une fonction.
handler.construct()
Une trappe pour l'opérateur new.

Certaines trappes non-standards sont désormais obsolètes et ont été supprimées.

Spécifications

Spécification État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Proxy Object Internal Methods and Internal Slots' dans cette spécification.
Standard Définition initiale.
ECMAScript Latest Draft (ECMA-262)
La définition de 'Proxy Object Internal Methods and Internal Slots' dans cette spécification.
Projet La trappe pour enumerate a été retirée.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
applyChrome Support complet 49Edge Support complet 12Firefox Support complet 18IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 18Opera 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 18IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 18Opera 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 18IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 18Opera 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 18IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 18Opera 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 NonFirefox Aucun support 37 — 47IE Aucun support NonOpera Aucun support NonSafari Aucun support NonWebView Android Aucun support NonChrome Android Aucun support NonFirefox Android Aucun support 37 — 47Opera 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 18IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 18Opera 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 18IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 18Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
getPrototypeOfChrome Support complet 49Edge Aucun support NonFirefox Support complet 49IE Aucun support NonOpera Support complet 36Safari Aucun support NonWebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 49Opera Android Support complet 36Safari iOS Aucun support NonSamsung Internet Android Support complet Ouinodejs Support complet 6.0.0
hasChrome Support complet 49Edge Support complet 12Firefox Support complet 18IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 18Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
isExtensibleChrome ? Edge ? Firefox Support complet 31IE Aucun support NonOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android Support complet 31Opera Android ? Safari iOS ? Samsung Internet Android ? nodejs Support complet 6.0.0
ownKeysChrome Support complet 49Edge Support complet 12Firefox Support complet 18
Notes
Support complet 18
Notes
Notes In Firefox 42, the implementation got updated to reflect the final ES2015 specification: The result is now checked if it is an array and if the array elements are either of type string or of type symbol. Enumerating duplicate own property names is not a failure anymore.
IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 18
Notes
Support complet 18
Notes
Notes In Firefox 42, the implementation got updated to reflect the final ES2015 specification: The result is now checked if it is an array and if the array elements are either of type string or of type symbol. Enumerating duplicate own property names is not a failure anymore.
Opera 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 22IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 22Opera 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 18IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 18Opera Android Support complet 36Safari iOS Support complet 10Samsung Internet Android Support complet 5.0nodejs Support complet 6.0.0
setPrototypeOfChrome Support complet 49Edge ? Firefox Support complet 49IE Aucun support NonOpera Support complet 36Safari ? WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 49Opera Android Support complet 36Safari iOS ? Samsung Internet Android Support complet Ouinodejs Support complet 6.0.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
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 les notes d'implémentation.
Voir les notes d'implémentation.

Voir aussi