1

情况如下:我检查了现有的类,例如:

('Promise' in window) // true/false`

我想强制返回 false 或 true ,我可以这样做吗?是的,我可以通过其他方式检查它,例如`

window.Promise = undefined;
window.Promise === undefined;

或者类似的东西,但我可以以某种方式删除这个对象或为“in”运算符模拟一些东西吗?

我检查规范和v8代码,有'in'运算符只是调用'HasProperty'运算符,它在c ++上实现。我知道'hack'伪造toString / valueOf方法:

obj = {
  toString: function(){ return 'myName'; }
},
obj2 = {};
obj2[obj] = 1; // Object {myName: 1}

可能我可以以某种方式使用它吗?但是,当我发送字符串“Promise”时,我不能像这样伪造它......可能存在某种伪造“HasProperty”的方式?

4

0 回答 0