老师,请教几个问题

老师,请教几个问题

http://img1.sycdn.imooc.com//climg/5e5d79f309b7720217481486.jpg

//1.第一红框中内部函数operate调用应该是只能在自执行函数var=operate下调用,请问函数operate是怎么样接收参数的(name, num1, num2) ?

//2.第一绿框中对象operation调用了addOperation方法,为什么要赋值给内部函数operate?

//3.第二个红框中,是外部自执行函数operate调用,和内部函数operate应该是无关的吧?所以operate.addOperation = operation.addOperation;条件应该是对它没有用,那为什么可以直接调用addOperation方法?


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

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

3回答
好帮手慕粉 2020-03-06 09:50:42

同学你好,理解的是正确的,名字是自定义的,不过我们为了维护代码时可以看的懂,一般都取有意义的名字。

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

好帮手慕粉 2020-03-05 10:00:35

同学你好,老师给同学举个例子同学看下:

1、不将数据return出去:

http://img1.sycdn.imooc.com//climg/5e605c4909f3a83804160220.jpg

就访问不了son这个函数:

http://img1.sycdn.imooc.com//climg/5e605c5209cb058407220111.jpg

2、将数据return出去:

http://img1.sycdn.imooc.com//climg/5e605c740951925c05000244.jpg

http://img1.sycdn.imooc.com//climg/5e605c7c09bc586005010076.jpg

这个代码中的也是一样的,将函数return出去以后,外界就可以访问到。

3、将函数挂载到函数上:

http://img1.sycdn.imooc.com//climg/5e605d220902ac1604790224.jpg

http://img1.sycdn.imooc.com//climg/5e605d2a09d507ec01580074.jpg

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

  • 提问者 挪威_ #1
    老师,挂载的方法名,是自定义的把?(字母、下划线、美元),所以赋值语句,可以理解就是test用到了say方法得到的结果是函数sayHi,调用后,打印出saiHi 同理operate.addOperation = operation.addOperation 比如这样 operate.ad = operation.addOperation也是可以的
    2020-03-06 01:28:46
好帮手慕粉 2020-03-03 10:52:17

同学你好,关于同学的问题回答如下:

1、因为自执行函数将operate函数返回了出去,那么在外面就可以访问到它:

http://img1.sycdn.imooc.com//climg/5e5dc49a09cf03f508610224.jpg

2、因为在自执行函数中,只将operate函数提供给了外界(return出去),没有将operation对象提供给外界,外界是访问不到operation的,所以将operation的方法赋值给operate,这样外界就可以访问到了。

3、不是的,执行的是返回出来的operate方法。第三个红框中的operate就是返回出来的operate:

http://img1.sycdn.imooc.com//climg/5e5dc5f409cf1d5206830255.jpg

在上面已经做了operate.addOperation = operation.addOperation;赋值操作,所以可以访问得到。

4、建议同学再认真听下视频呢。

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

  • 提问者 挪威_ #1
    老师,return operate后,这个函数相当于脱离了var operate的作用域,相当于在var operate外部写了个函数operate,这样理解对吗?
    2020-03-04 21:03:36
  • 提问者 挪威_ #2
    老师,这个能详细说明下吗?operate.addOperation = operation.addOperation 我知道没有将operation对象提供给外界,将operation的方法赋值给operate,这样外界就可以访问到了。但我不知道原理是什么,operate是个函数本体,它调用对象中addOperation方法?operate.addOperation我测试了右边如果不赋值就报错;之前学习的都是通过对象名访问,operate.addOperation函数这个没搞懂原理
    2020-03-05 02:32:45
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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