在 Mootools 中,以下模式经常出现:
var x = this.x = function(){}
例如:
var typeOf = this.typeOf = function(item){ ...
我了解多次分配导致function
同时分配给x
和this.x
。但我认为在全局范围内x
是隐式的this.x
,所以看起来是多余的。这是一种优化技术,还是这种模式有其他目的?
在 Mootools 中,以下模式经常出现:
var x = this.x = function(){}
例如:
var typeOf = this.typeOf = function(item){ ...
我了解多次分配导致function
同时分配给x
和this.x
。但我认为在全局范围内x
是隐式的this.x
,所以看起来是多余的。这是一种优化技术,还是这种模式有其他目的?
仅当此代码未在函数中执行时,这才是多余的。
如果它在函数中,则 var 是本地的,即使上下文 ( this
) 是全局的。
看这个 :
function a() {
var x = 1;
console.log(x)
}
function b() {
console.log(x); // fails
}
a();
b();
如果您希望能够x
直接使用 ina
和 have this.x
in b
,那么您需要双重分配:
var x = this.x = 1;
当我有一个经常使用的变量并且我更喜欢不使用this.
.
var x 不等于 this.x,var x 是 js 类的私有变量,this.x 是公共属性,因此代码创建了两种调用函数的方式这里举个例子:
function exampleA() {
this.x = 1;
var x = 2;
this.show = function () {
alert("A.x:" + x);
alert("A.this.x:" + this.x);
};
}
function exampleB() {
var x = this.x = 1;
this.x +=1;
this.show = function () {
alert("B.x:" + x);
alert("B.this.x:" + this.x);
};
}
$(document).ready(
function () {
var example1 = new exampleA();
example1.show();
var example1 = new exampleB();
example1.show();
});