ExtJS 中为什么要使用“var me=this”这样的写法
1个回答
展开全部
首先,不知道你懂this代表的是什么不?另外一个还要理解,js中的函数其实也是个对象!再一个要知道,作用域的问题。
有这三块知识就好办,this这种用法,不单单是在ext中我们自己写的js对象,其他js框架中也很常见。目的只有一个,在嵌套的函数或对象或方法中,可以再应用到当前对象,this是代表当前对象。因为你代码块要跳出了当前的作用范围,再用this指针应用不到你真正想引用的对象。说例子:
var setValue = function() {
this.value = "current value";
var me = this;
//嵌套函数中的 this指针代表remove函数自己
//me代表使用setValue这个函数的对象或setValue自己(js有这种特性,你把setValue复制给某个对象的属性,this指的是该对象)
function remove() {
console.log(me);
console.log(this);
me.value="remove current value";
}
remove();
}
绕来绕去不知道你明白没有?
有这三块知识就好办,this这种用法,不单单是在ext中我们自己写的js对象,其他js框架中也很常见。目的只有一个,在嵌套的函数或对象或方法中,可以再应用到当前对象,this是代表当前对象。因为你代码块要跳出了当前的作用范围,再用this指针应用不到你真正想引用的对象。说例子:
var setValue = function() {
this.value = "current value";
var me = this;
//嵌套函数中的 this指针代表remove函数自己
//me代表使用setValue这个函数的对象或setValue自己(js有这种特性,你把setValue复制给某个对象的属性,this指的是该对象)
function remove() {
console.log(me);
console.log(this);
me.value="remove current value";
}
remove();
}
绕来绕去不知道你明白没有?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询