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 (ECMA-262)
La définition de 'Proxy Object Internal Methods and Internal Slots' dans cette spécification.
Standard évolutif 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
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 Support complet 79Firefox 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 5.0nodejs 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 Support complet 49Edge Support complet 12Firefox Support complet 31IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 31Opera 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 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 Support complet 12Firefox Support complet 49IE Aucun support NonOpera Support complet 36Safari Support complet 10WebView Android Support complet 49Chrome Android Support complet 49Firefox Android Support complet 49Opera 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
Voir les notes d'implémentation.
Voir les notes d'implémentation.

Voir aussi