如何在javascript中拦截“输入”运算符?

时间:2019-09-06 01:21:43

标签: javascript node.js

我有一个对象,我想拦截该对象上的in操作者访问权限。

例如

myObject.operatorIn = ()=>throw new Error("You can't touch it :)")

1 个答案:

答案 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);