- 从对象中提取方法,为什么会丢失原对象,this变成指向window?
-
聚码交流
-
0
0

- yhuxAvNbtxUM
0000-00-00 00:00:00
- 回帖
varlabel=2varobj={label:1a:function(){console.log(this.label);}}obj.a();//1varb=obj.ab();//2为什么b会丢失原对象this,后面的原理是什么?================补充:嵌套函数的this指向window怎么理解?=========================如果说函数的this,由它运行时的执行环境来决定,比如这里的obj.a(),function的执行环境是obj所以this指向obj,而b()的执行环境是window,所以this指向window;那么嵌套函数的this指向window,这个除了说“这是JS的语法规范规定的”,怎么从JS的实现原理上理解?varlabel="windowC"functionshowThis(){varlabel="innerC"functioninnerFun(){console.log(this.label)}innerFun()}showThis();//windowC