7-4选择题第二道题

7-4选择题第二道题

http://img1.sycdn.imooc.com/climg//590beacc0001e53205000770.jpg

在把函数存入一个变量后,为什么num++后的数值会被保留呢?    前面把从新赋值为1为何不起做用了?

正在回答

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

2回答

1.     count()()这样调用,每次都会创建一个新的局部作用域,num的值会不断地被初始化为1

2.     return num++表示先返回num的值,再将num加1

3.     先将count()赋给fn,此时count()只调用了一次,接下来多次调用fn()的时候,count函数并没有多次调用,num只会在count函数调用的时候被初始化,所以多次调用fn()的时候num不会被多次初始化

由于fn相当于count函数的内层函数(var fn=count();这行代码执行后,就调用了count(),调用count后就将里面的函数赋值给了fn,所以说fn就相当于函数的内层函数了。),可以访问count中的变量num,所以多次调用fn函数,会将num的值累加

祝学习愉快!


  • 红星双子 提问者 #1
    非常感谢!
    2017-11-24 16:15:02
  • 两脸懵B ,内层函数是什么意思,fn=count()的时候发生了什么?
    2018-01-07 14:54:55
Miss路 2017-11-23 19:16:24

肯定是要保存++后的值了,要不然写num++有什么用。不要把自己绕进去了哦。祝学习愉快!

  • 提问者 红星双子 #1
    为什么呢@@@@@@@@@@@@@@
    2017-11-24 15:43:31
  • 提问者 红星双子 #2
    为什么呢?
    2017-11-24 15:44:07
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

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

在线咨询

领取优惠

免费试听

领取大纲

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