Il metodo Proxy.revocable()
è usato per creare un oggetto Proxy
revocabile.
Sintassi
Proxy.revocable(target, handler);
Parametri
target
- Un oggetto target che il Proxy ingloberà. Può essere un qualsiasi tipo di oggetto, array nativi inclusi, funzioni o anche altri Proxy.
handler
- Un oggetto le cui proprietà sono funzioni che definiscono i comportamenti del proxy quando un'operazione viene effettuata su di esso.
Valore restituito
Un nuovo oggetto Proxy
revocabile.
Descrizione
Un Proxy
revocabile è un oggetto con le seguenti due proprietà {proxy: proxy, revoke: revoke}
.
proxy
- L'oggetto Proxy creato con
new Proxy(target, handler)
. revoke
- Una funzione che non richiede argomenti per disattivare il
proxy
.
Se la funzione revoke()
viene invocata, il proxy diventa inutilizzabile: se si tenta di farne uso si otterrà un TypeError
. Una volta che il proxy è revocato rimarrà in questo stato e potrà essere eliminato dal garbage collector. Successive invocazioni di revoke()
non avranno effetto.
Esempi
var revocable = Proxy.revocable({}, { get: function(target, name) { return "[[" + name + "]]"; } }); var proxy = revocable.proxy; console.log(proxy.foo); // "[[foo]]" revocable.revoke(); console.log(proxy.foo); // viene sollevato un TypeError proxy.foo = 1 // viene sollevato un TypeError delete proxy.foo; // viene sollevato un TypeError typeof proxy // "object", typeof non innesca nessuna trappola
Specifiche
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Proxy Revocation Functions' in that specification. |
Standard | Definizione iniziale. |
ECMAScript Latest Draft (ECMA-262) The definition of 'Proxy Revocation Functions' in that specification. |
Draft |
Compatibilità tra Browser
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Basic support | Chrome Full support 63 | Edge Full support Yes | Firefox Full support 34 | IE No support No | Opera Full support Yes | Safari Full support 10 | WebView Android Full support 63 | Chrome Android Full support 63 | Edge Mobile Full support Yes | Firefox Android Full support 34 | Opera Android Full support Yes | Safari iOS Full support 10 | Samsung Internet Android Full support Yes | nodejs Full support 6.0.0 |
Legend
- Full support
- Full support
- No support
- No support