La méthode Proxy.revocable() est utilisée afin de créer un objet Proxy révocable.

Syntaxe

Proxy.revocable(cible, gestionnaire);

Paramètres

cible
Un objet cible (qui peut être n'importe quel objet, y compris un tableau, une fonction, ou même un autre proxy) ou une fonction qu'on souhaite envelopper dans un Proxy.
gestionnaire
Un objet dont les propriétés sont des fonctions qui définissent le comportement du proxy lorsqu'on utilise une opération sur celui-ci.

Valeur de retour

Un nouvel objet Proxy révocable est renvoyé par la méthode.

Description

Un Proxy révocable est un objet qui possède les propriétés suivantes : {proxy: proxy, revoke: revoke}.

proxy
Un proxy crée avec un appel à new Proxy(cible, gestionnaire).
revoke
Une fonction sans argument qui permet de désactiver le proxy.

Si la fonction revoke() est appelée, le proxy devient inutilisable et toutes les trappes définies via un gestionnaire lèveront une exception TypeError. Une fois que le proxy est révoqué, il conserve cet état et peut être traité par le ramasse-miettes. D'éventuels appels suivants à revoke() n'auront aucun effet.

Exemples

var révocable = Proxy.revocable({}, {
  get: function(cible, nom) {
    return "[[" + nom + "]]";
  }
});
var proxy = révocable.proxy;
console.log(proxy.toto); // "[[toto]]"

révocable.revoke();

console.log(proxy.toto); // TypeError est levée
proxy.toto = 1           // TypeError à nouveau
delete proxy.toto        // TypeError toujours
typeof proxy             // "object", typeof ne déclenche aucune trappe

Spécifications

Spécification État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Proxy Revocation Functions' dans cette spécification.
Standard Définition initiale.
ECMAScript Latest Draft (ECMA-262)
La définition de 'Proxy Revocation Functions' dans cette spécification.
Projet  

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 OuiEdge Support complet OuiFirefox Support complet 34IE Aucun support NonOpera Support complet OuiSafari Support complet 10WebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 34Opera Android Support complet OuiSafari iOS Support complet 10Samsung Internet Android Support complet Ouinodejs Support complet 6.0.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support

Voir aussi

Étiquettes et contributeurs liés au document

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