扫码关注官方订阅号
走同样的路,发现不同的人生
第一个括号返回的这个函数并不是object的方法,其就是一个普通函数,其this指向window
分开执行就好理解些了。
第一步执行
object.getName()
此时得到返回的函数:
function (){ return this }
第二步执行这个返回的函数,此时要明白的是你执行这个函数的时候,它是在window下执行的。所以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没任何关系了
object.getName()();object.getName():返回一个function() {return this;}现在object.getName()()就相当于function() {return this;}(),此时的上下文为全局对象Window,即this指向window
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
第一个括号返回的这个函数并不是object的方法,其就是一个普通函数,其this指向window
分开执行就好理解些了。
第一步执行
此时得到返回的函数:
第二步执行这个返回的函数,此时要明白的是你执行这个函数的时候,它是在
window下执行的。所以this应该就是如图打印的。函数要看执行环境!
嵌套函数的this是指向window的
对象函数里面的this是指向该对象的
如:
是的,已经和object没任何关系了
object.getName()();
object.getName():返回一个function() {return this;}
现在object.getName()()就相当于function() {return this;}(),此时的上下文为全局对象Window,即this指向window