这个结果为啥是7啊能给我讲讲吗

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕然然 2021-09-27 16:27:28

同学你好,根据上下文规则2:以圆括号的形式调用函数,则函数的上下文(this)是window对象。

这段代码中,fn是以圆括号的形式调用的,即:fn(),所以函数fn中的this指向window,如图

https://img1.sycdn.imooc.com//climg/61517e39098755ba13500509.jpg

所以,this.a和this.b表示window对象中的属性a和属性b,而不是obj1对象中的属性a和属性b。

又因为在全局作用域中定义了变量a和变量b,在全局作用域中定义的变量会默认为window对象的属性,如图

https://img1.sycdn.imooc.com//climg/61517fee09a0267610240528.jpg

因此,综上可得:this.a = 3,this.b = 4,相加得7,如图

https://img1.sycdn.imooc.com//climg/6151806909fca30c11740541.jpg

祝学习愉快!

  • 提问者 球球不一般 #1

    不明白啊


    2021-09-27 16:34:29
  • 提问者 球球不一般 #2

    啥是全局作用域啊和Windows对象啊

    2021-09-27 16:35:54
  • 好帮手慕然然 回复 提问者 球球不一般 #3

    同学你好,老师记得在之前的问题中,讲过全局变量window对象,老师给同学加上了链接,建议同学再去复习一下。

    关于全局作用域:理解起来比较简单,作用域分为局部作用域和全局作用域,如图所示:

    函数内部的区域为局部作用域,函数外部的区域为全局作用域

    https://img1.sycdn.imooc.com//climg/61519479099e938106290317.jpg

    另外,从提问中感觉同学对JS部分的基础知识掌握的不是特别扎实,建议同学安排时间复习巩固一下,可以结合视频和曾经提问的问题来复习。学习后面的知识是需要前面的基础知识作为支撑的,如果前面的基础知识没有掌握好,继续往后学习,会很吃力,所以一定要打好基础。

    祝学习愉快!

    2021-09-27 17:53:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师