javascript - 检查代理对象是否被撤销

标签 javascript es6-proxy

ECMAScript 6 引入了代理对象,该对象可以创建为可撤销的。

如何检测代理是否已被撤销?

最佳答案

Proxy 构造函数仅接受目标和处理程序(当它们是对象且不是已撤销代理时)。来自 ProxyCreate ,

  1. If Type(target) is not Object, throw a TypeError exception.
  2. If target is a Proxy exotic object and the value of the [[ProxyHandler]] internal slot of target is null, throw a TypeError exception.

这允许您检查某个值是否是已撤销的代理:您只需 ensure that it's an object但使 Proxy 抛出。

这样的事情应该有效:

function isRevokedProxy(value) {
  try {
    new Proxy(value, value);
    return false;
  } catch(err) {
    return Object(value) === value;
  }
}

关于javascript - 检查代理对象是否被撤销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39335909/

相关文章:

javascript - 使用 ES6 代理替换原型(prototype)时超出最大调用堆栈大小

javascript - 流畅的异步 api 与 ES6 代理 javascript

node.js - 使用 ES6 Proxy 和 node.js 的非法调用错误

javascript - 通过单击添加并拖动新项目

javascript - 使用c#将图像发送到whatsapp号码

javascript - jqueryui datepicker - 维护两个日期之间的偏移量

javascript - 确定函数是否在代理处理程序中被访问或调用

javascript - 嵌套 ES6 代理未按预期工作

javascript - 拖动 div 正在创建更多 div

javascript - 从 javascript 设置字段