Proxy.revocable
Proxy.revocable()
方法可以用来创建一个可撤销的代理对象。
语法
Proxy.revocable(target, handler);
参数
target
用Proxy
包装的目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)。
handler
一个对象,其属性是当执行一个操作时定义代理的行为的函数。
返回值
返回一个包含了所生成的代理对象本身以及该代理对象的撤销方法的对象。
描述
该方法的返回值是一个对象,其结构为:{"proxy": proxy, "revoke": revoke},其中:
proxy
表示新生成的代理对象本身,和用一般方式new Proxy(target, handler)
创建的代理对象没什么不同,只是它可以被撤销掉。
revoke
撤销方法,调用的时候不需要加任何参数,就可以撤销掉和它一起生成的那个代理对象。
示例
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
规范
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Proxy Revocation Functions' in that specification. | Standard | Initial definition. |
ECMAScript Latest Draft (ECMA-262)The definition of 'Proxy Revocation Functions' in that specification. | Draft | |
浏览器兼容性
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | 34 (34) | No support | (Yes) | 10.0 |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | No support | (Yes) | (Yes) | 34 (34) | No support | ? | 10.0 |
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com