我有一个对象,我想拦截该对象上的in
操作者访问权限。
例如
myObject.operatorIn = ()=>throw new Error("You can't touch it :)")
答案 0 :(得分:5)
使用代理,您可以创建has
trap来拦截对in
的使用:
const myObject = {
foo: 'foo'
};
const myObjectProxy = new Proxy(
myObject,
{
has() {
throw new Error("You can't touch it");
}
}
);
console.log(myObjectProxy.foo);
console.log('foo' in myObjectProxy);