将此声明为其他内容

时间:2011-07-11 11:13:23

标签: javascript

我最近看到了一些这样的例子,我很好奇为什么会这样。 (例如在extjs源代码中,它到处都是)

var me=this;

var that=this;

而不是指这个,而是使用我。

4 个答案:

答案 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)

这里有一个非常详尽的解释:

http://bonsaiden.github.com/JavaScript-Garden/#function.this

相关问题