我最近看到了一些这样的例子,我很好奇为什么会这样。 (例如在extjs源代码中,它到处都是)
var me=this;
或
var that=this;
而不是指这个,而是使用我。
答案 0 :(得分:1)
人们这样做是为了将this
指针保存到局部变量。然后,只要this
上下文发生变化,他们就会引用that
(或我)
答案 1 :(得分:1)
在使用闭包时,需要能够访问“父”对象。简而言之,this
在匿名函数中始终指向window
,因此该模式用于解决它,允许访问原始对象。
http://jibbering.com/faq/notes/closures/是对闭包如何工作的一个相当深入的解释。
答案 2 :(得分:1)
这通常在闭包的情况下完成,在创建闭包时需要访问“this”。
例如:
var obj =
{
name: "Hello",
init : function() {
var me = this;
$("#txt").click ( function() {
alert(me.name);
});
}
}
在上面的例子中,obj中的init函数将事件处理程序附加到某个txt元素单击事件。此事件处理程序需要访问obj对象的name属性。现在在事件处理程序中,“this”将指向某个其他对象(事件发生的元素)而不是obj对象。因此我们创建一个名为me的变量,这指向this(obj),这个我在事件处理程序中用于引用obj。
答案 3 :(得分:0)