Web/JavaScript/Reference/Global objects/Proxy/revocable
The Proxy.revocable() method is used to create a revocable Proxy object.
Syntax
Proxy.revocable(target, handler);
Parameters
target- A target object to wrap with
Proxy. It can be any sort of object, including a native array, a function, or even another proxy. handler- An object whose properties are functions define the behavior of proxy
pwhen an operation is performed on it.
Return value
A newly created revocable Proxy object is returned.
Description
A revocable Proxy is an object with following two properties {proxy: proxy, revoke: revoke}.
proxy- A Proxy object created with
new Proxy(target, handler)call. revoke- A function with no argument to invalidate (switch off) the
proxy.
If the revoke() function gets called, the proxy becomes unusable: Any trap to a handler will throw a TypeError. Once a proxy is revoked, it will remain revoked and can be garbage collected. Calling revoke() again has no effect.
Examples
Using Proxy.revocable
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); // TypeError is thrown
proxy.foo = 1 // TypeError again
delete proxy.foo; // still TypeError
typeof proxy // "object", typeof doesn't trigger any trap
Specifications
| Specification |
|---|
| ECMAScript (ECMA-262)The definition of 'Proxy Revocation Functions' in that specification. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
revocable
|
Chrome
Full support 63 |
Edge
Full support 12 |
Firefox
Full support 34 |
IE
No support No |
Opera
Full support 50 |
Safari
Full support 10 |
WebView Android
Full support 63 |
Chrome Android
Full support 63 |
Firefox Android
Full support 34 |
Opera Android
Full support 46 |
Safari iOS
Full support 10 |
Samsung Internet Android
Full support 8.0 |
nodejs
Full support 6.0.0 |
Legend
- Full support
- Full support
- No support
- No support
See also
Proxy.revocable() by Mozilla Contributors is licensed under CC-BY-SA 2.5.