情况如下:我检查了现有的类,例如:
('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”的方式?