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

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
apply491218 Non3610
construct491218 Non3610
defineProperty491218 Non3610
deleteProperty491218 Non3610
enumerate Non Non37 — 47 Non Non Non
get491218 Non3610
getOwnPropertyDescriptor491218 Non3610
getPrototypeOf Non Non49 Non Non Non
has491218 Non3610
isExtensible ? ?31 Non ? ?
ownKeys4912181 Non3610
preventExtensions491222 Non3610
set491218 Non3610
setPrototypeOf ? ?49 Non ? ?
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
apply4949 Oui1836105.0
construct4949 Oui1836105.0
defineProperty4949 Oui1836105.0
deleteProperty4949 Oui1836105.0
enumerate Non Non Non37 — 47 Non Non Non
get4949 Oui1836105.0
getOwnPropertyDescriptor4949 Oui1836105.0
getPrototypeOf Non Non Non49 Non Non Non
has4949 Oui1836105.0
isExtensible ? ? ?31 ? ? ?
ownKeys4949 Oui18136105.0
preventExtensions4949 Oui2236105.0
set4949 Oui1836105.0
setPrototypeOf ? ? ?49 ? ? ?

1. 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.

Voir aussi

Étiquettes et contributeurs liés au document

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