可撤销的Proxy代理

该文章由 leevare 发布于 ,归类于 Javascript

当使用new Proxy的方式创建一个代理后,通常其代理不能脱离其目标,如果想创建一个可撤销的代理,可以使用Proxy.revocable

Proxy.revocable传递的参数和Proxy相同,它的返回值是两个对象:

  • proxy 可被撤销的代理对象
  • revoke 撤销代理要调用的函数

如下代码

const target = {
  name: "leevare",
};

const { proxy, revoke } = Proxy.revocable(target, {});
console.log(proxy.name); // leevare
revoke();
console.log(proxy.name); // TypeError: Cannot perform 'get' on a proxy that has been revoked

Proxy.revocable在撤销之前,和new Proxy代理的对象表现是一致的,访问proxy.name会透传到target.name的值,但是当调用了revoke之后,表示撤销了代理,这时候proxy已经不是一个代理对象,访问proxy.name会抛出一个错误。

如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!

相关文章:

说点什么

avatar
300
  订阅  
提醒