多重赋值的目的var x = this.X = function(){}
Purpose of multiple assignment var x = this.x = function(){}?
在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();
如果你想在a
中直接使用x
,在b
中使用this.x
,那么你需要双赋值:
var x = this.x = 1;
我经常在大型函数中使用这种模式,当我有一个变量我使用很多,我更喜欢直接访问没有this.
。
var x不等于这个。X, var X是js类的私有变量。X是一个公共属性,所以代码创建了2种调用函数的方式下面是一个例子:
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();
});
相关文章:
- this内部的值返回this.each(function(){})
- This.props.dispatch not a function - React-Redux
- jQuery $(this) inside function
- 重复“;function(){}.调用(this)"在Uglified JS中
- Javascript get "this" class with onClick function
- 用(function(){…}).call(this)包装文件,而用简单的()包装调用
- Function.length和this.length不一样.为什么
- jQuery: addClass and click function for this class
- 函数(){}.bind(this) 和 angular.bind(this, function() {}) 之间的区别
- Advantage of (function() {/*...*/}).call(this);
- this.function 和 this.function() 之间的区别
- 为什么使用 (function(){}).call(this);.
- this.function不是函数错误,但函数存在
- TypeError:调用Function.protype.method()时,this.prototype未定义
- undefined is not a function when evaluating 'this.batman
- Javascript setTimeout function with 'this'
- this.text Function
- 为什么object.function.this在使用function.call时没有定义
- JavaScript: change function(this) to function(this.id)
- AJAX function(this)