“this
关键字总是指包含函数作为方法的对象。”
太好了,听起来很简单,但这就是我想知道的……
例如:
function func1() {
function func2() {
alert(this == window); // true
}
func2();
alert(this == window); // true
}
func1.func3 = function () {
alert(this == window); // false
alert(this == func1); // true
};
func1();
func1.func3();
现在,因为func1
实际上是全局( window
) 对象的方法(分配给全局func1
对象属性的函数对象),所以inside指的是全局对象,并且因为是函数对象的方法,所以有意义那里面指的是'函数对象。this
func1
func3
func1
this
func3
func1
困扰我的是func2
。我知道this
嵌套函数内部也应该引用全局对象,但我不确定为什么因为func2
不是全局对象的方法。据我了解(这是我可能完全错误的部分)func2
是func1
调用(激活/变量)对象的方法。现在,如果我对此是正确的(而且我不确定我是否正确),那么不应该this
在内部func2
引用func1
's call object 而不是全局对象?
所以,我想我的问题是:嵌套函数是否是嵌套函数的调用(激活)对象的方法,如果是,不应该this
引用该调用对象而不是全局对象?