在全球范围内,
之间是否存在差异this.myvar = 42;
和
var myvar = 42;
(严格模式,如果重要的话。)
如果是这样,有什么不同,尤其是何时在函数中引用myvar
?
(问题可能与this有关。)
答案 0 :(得分:0)
否没有区别。在全球范围内。但如果你进入一个函数并说“this
”它仍然指向窗口。这就是为什么通常深入到函数开发人员通常在转到函数并使用var self = this;
之前均衡self.variableName;
答案 1 :(得分:0)
在全球范围内,this === window
。
因此,this
是window
的简单访问者(如C
中的指针或PHP
中的引用)。
事实上,像var x = 'toto'
这样的分配可以通过以下方式获取:
console.log(window.x);
console.log(x);
console.log(this.x);
var x = 'toto'; // assignment before mythis definition
var mythis = (function(self) { // mythis definition
return self;
})(this);
var y = 'tata'; // assignment after mythis definition
console.log(mythis.x); // display toto
console.log(this.x); // display toto
console.log(window.x); // display toto
console.log(mythis.y); // display tata
console.log(this.y); // display tata
console.log(window.y); // display tata