La méthode handler.preventExtensions()
est une trappe pour Object.preventExtensions()
.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
Syntaxe
var p = new Proxy(cible, { preventExtensions: function(cible) { } });
Paramètres
Le paramètre suivant est passé à la méthode preventExtensions
. this
est lié au gestionnaire (handler).
cible
- L'objet cible.
Valeur de retour
La méthode preventExtensions
doit renvoyer une valeur booléenne.
Description
La méthode handler.preventExtensions()
est une trappe pour intercepter Object.preventExtensions()
.
Interceptions
Cette trappe peut intercepter les opérations de :
Invariants
Si les invariants suivants ne sont pas respectés, le proxy renverra une execption TypeError
:
Object.preventExtensions(proxy)
ne renvoietrue
que siObject.isExtensible(proxy)
vautfalse
.
Exemples
On intercepte l'appel à Object.preventExtensions()
dans l'exemple suivant :
var p = new Proxy({}, { preventExtensions: function(cible) { console.log("appelé"); Object.preventExtensions(cible); return true; } }); console.log(Object.preventExtensions(p)); // "appelé" // true
Le code suivant ne respecte pas l'invariant :
var p = new Proxy({}, { preventExtensions: function(cible) { return true; } }); Object.preventExtensions(p); // TypeError est levée
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) La définition de '[[PreventExtensions]]' dans cette spécification. |
Standard | Définition initiale. |
ECMAScript Latest Draft (ECMA-262) La définition de '[[PreventExtensions]]' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Support simple | 49 | 12 | 22 | Non | 36 | 10 |
Fonctionnalité | Android webview | Chrome for Android | Edge mobile | Firefox for Android | Opera Android | iOS Safari | Samsung Internet |
---|---|---|---|---|---|---|---|
Support simple | 49 | 49 | Oui | 22 | 36 | 10 | 5.0 |