JavaScript中的this对象

首先,this对象是在运行时基于函数的执行环境绑定的,是发生在调用的时候。这个“超级”延迟绑定(very late binding)使得函数可以对this高度复用。

在全局函数中,this等于window;当函数被作为某个对象的方法调用时,this等于那个对象。匿名函数的执行环境具有全局性,因此其this通常指向window(当然,在通过调用call()apply()方法改变函数执行环境的情况下,this就会指向其他对象)。对于闭包,在某些情况下,这点可能不太明显。

每个函数在被调用时,会自动取得两个特殊变量——thisarguments
内部函数在搜索这两个变量的时候,只会搜索到其活动对象为止,因此永远不可能直接访问外部函数中的这两个变量。
幸运的是,有一个很简单的解决方法

如果该方法定义一个变量并为其赋值为this,那么内部函数就可以通过这个新的变量来访问到this。按照约定,这个变量命名为that。

你可能感兴趣的:(JavaScript中的this对象)