正在回答 回答被采纳积分+1
1回答
好帮手慕然然
2021-09-27 17:09:23
同学你好,这段代码涉及了两个上下文规则,需要一个一个来看:
1、首先来看obj1对象中的属性b,属性b的值为fun函数的返回结果【b:fun()】,在fun函数中 return this.a + this.b 表示函数的返回结果为:this.a + this.b 的和
此时fun函数是以圆括号的形式调用的【即fun(),此为规则2】,所以fun函数中的this指向window对象,this.a和this.b是window对象的属性a和属性b,如图
2、经过第一步之后,obj1对象变为如下:
然后执行var result = obj1.fun(),表示调用obj1对象中的fun函数,并把返回结果存放到变量result中。
此时fun函数的调用方式为:对象打点调用它的方法函数【即obj1.fun(),此为规则1】,所以fun函数的上下文(this)是这个打点的对象,即obj1对象,fun函数中的this.a和this.b也是obj1对象的属性,如图
祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星