如何在JavaScript中拦截 "in" 运算符?

3
我有一个对象,我想拦截对该对象的in操作符访问。
例如:
myObject.operatorIn = ()=>throw new Error("You can't touch it :)")

1
感谢您不能这样做。 - zerkms
1个回答

5

通过使用代理,您可以创建一个has陷阱来拦截对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);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接