ECMAScript 6 引入了代理对象,它可以被创建为可撤销的。
如何检测代理是否已被撤销?
构造函数仅在Proxy
目标和处理程序是对象且未被撤销的代理时才接受它们。从ProxyCreate,
这允许你检查一个值是否是一个被撤销的代理:你只需要确保它是一个对象但会Proxy
抛出。
像这样的东西应该工作:
function isRevokedProxy(value) {
try {
new Proxy(value, value);
return false;
} catch(err) {
return Object(value) === value;
}
}