我一直在测试以下代码,但 Firefox16 和 Chrome22 给了我不同的结果。
console.log(this===window); //false in Firefox and true in Chrome
console.log(this.window===window); //true in both Firefox and Chrome
(function(){
console.log(this===window); //false in Firefox and true in Chrome
console.log(this.window===window); //true in both Firefox and Chrome
})();
据我记得,Chrome 的回答是正确的:除非用 , 调用new
,否则this
总是与全局对象相同window
,这导致了一种称为范围安全构造函数的模式。