2015-10-16 82 views

回答

4

如果你在全球范围内(并且我有预感),那么就没有局部变量,并且var什么也不做。因此,location等于this.locationthis == window ...您可以看到发生了什么。在您的控制台中试用:var location = "http://example.com";或者,对于一个不太确切的例子,var foo = 17; console.log(window.foo);

(注意:我不是100%确定的,因为我已经写了一段Chrome扩展,但不知道你是否处在全局环境中;但它是符合我能想到的事实的唯一解释。)

要修复它,请更改变量的名称,或更好地引入非全局上下文;例如: -

(function() { 
    var location = window.location; // does not blow up 
})(); 

或等价

function pleaseDontBlowUp() { 
    var location = window.location; // does not blow up 
} 
pleaseDontBlowUp(); 
相关问题