分开执行就好理解些了。
第一步执行
object.getName()
此时得到返回的函数:
function (){
return this
}
第二步执行这个返回的函数,此时要明白的是你执行这个函数的时候,它是在window
下执行的。所以this
应该就是如图打印的。
函数要看执行环境!
嵌套函数的this是指向window的
对象函数里面的this是指向该对象的
如:
var a = {
getName: function(){
console.log(this);
function b() {
console.log(this);
}
b();
}
}
a.getName(); // 输出出来,第一个this是Object a, 第二个输出出来是window
object.getName()();
object.getName():返回一个function() {return this;}
现在object.getName()()就相当于function() {return this;}(),此时的上下文为全局对象Window,即this指向window
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答899 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
第一个括号返回的这个函数并不是object的方法,其就是一个普通函数,其this指向window