下面的这段代码中result函数的this的指向为什么是window?<script>window.onload=function(){ var name="the window"; var obj={ name:"my obj", getNameFunc:function(){ var result= function(){ return this.name;
} return result;
}
}; var func=obj.getNameFunc();
console.log(func());</script>我的理解是单调用了var func=obj.getNameFunc();后,result的this指向全局window对象,不知道是不是?
1 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
var func=obj.getNameFunc() 这句执行时,this指向的是obj这个对象,在你执行console.log(func()),调用func()时this指向了全局window对象。
当你要确定 函数中的this指向什么的时候,不要到函数定义的地方去找答案,而是要到函数被调用的地方找答案。如:a.f(),f()里面的this就是指a,而不管f()里面什么东西;若只是 f(),不考虑一些特殊情况,f里面的this就是指全局对象window
添加回答
举报
0/150
提交
取消