我无法弄明白,为什么有些浏览器允许下一个代码,而其他浏览器则不允许:
'use strict';
(function() {
Number = 1;
toString = 1;
valueOf = 1;
})();
console.log(Number);
console.log(toString);
console.log(valueOf);
起初,当我在Chrome中发现这一点时,我想,这是因为这些"变量"已经被定义为全局对象的属性。但window.hasOwnProperty('toString')
返回false,以及' valueOf'。所以我不知道。
有人可以解释一下吗?
我问,因为我需要在单元测试中测试,全局变量没有被修改,这种行为使得它很难,因为我不知道什么行为是正确的,所以我可以依赖它并没有找到它被修复的一天。