老師,能不能講一下這段代碼中四個fun之間的關係啊,誰是誰的誰?它被它調用,它又被它調用,尤其是第三個沒加()的fun,整懞了都

老師,能不能講一下這段代碼中四個fun之間的關係啊,誰是誰的誰?它被它調用,它又被它調用,尤其是第三個沒加()的fun,整懞了都

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

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

2回答
好帮手慕小李 2022-01-05 10:07:49

同学你好,解答如下:

https://img1.sycdn.imooc.com//climg/61d4fc870917a7c003660083.jpg

这里但fun是定义但函数;

https://img1.sycdn.imooc.com//climg/61d4fc9e09bf5f5f05920110.jpg

obj中b:fun(),是直接调用fun函数。fun:fun只是存储了fun函数并没有调用。

https://img1.sycdn.imooc.com//climg/61d4fce909b37d1104990068.jpg

obj.fun()是调用了obj中的fun:fun。又加了圆括号就相当于obj.fun得到以后直接调用了。

代码运行如下:

1、这段代码中首先执行的是,obj中但b:fun(),结合课程中老师但讲解,函数加圆括号就是直接执行函数体,所以执行fun函数中的this.a + this.b,那么这里的this.a与this.b中的this指向为window,所以this.a是1b是2。

2、当obj.fun()调用时,this但指向就不是window了,而是obj中的a,那么obj中的this.a就是3,obj中的this.b就是刚才在解答1中计算出来的值3所以两者相加最后就是6。

如同学还有疑惑,也可以看看链接中的其他答案哈。

https://class.imooc.com/course/qadetail/305024

祝学习愉快!

阿惹 提问者 2022-01-04 23:55:48

fun屬性是fun函數本身啥意思啊?這裏的函數本身只是表示被定義,但是沒有被調用,如果fun:fun的後面加()了,就是代表被調用了,那就和上面的b:fun()如出一轍了。fun函數本身是不是等同於function fun(){return this.a+this.b;},在這裏純粹是類似於賦值的一種操作,并未調用。老師,不知道這麽理解對不對

  • 同学你好,解答如下:

    1、fun属性是指obj中但fun:fun,这里但fun就是function fun(){return this.a+this.b;}函数体。

    2、这里但函数体只是表示被定义了,但没有调用这个理解没错。

    3、如果fun:fun但后面加(),就表示被调用了,这个理解没错

    4、如果fun:fun后面加了(),那就与b:fun()是一个意思。

    5、fun函数本身就等于function fun(){return this.a+this.b;}这个理解没错。

    6、等于定义了函数体,但并未调用,这个理解没错。

    祝学习愉快!

    2022-01-05 10:13:24
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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