模拟本机对象不存在

时间:2014-05-29 09:21:31

标签: javascript v8 native-methods

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

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

我想强迫它返回虚假或真实,我能做到吗? 是的,我可以通过其他方式检查它,比如`

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'的方式?

0 个答案:

没有答案