为什么huishi123111count()()如果输出四是不是就是4呢

为什么huishi123111count()()如果输出四是不是就是4呢

为什么huishi123111count()()如果输出四是不是就是4呢,里面的代码是怎么执行的第一次是num是1第二次是2是不是num++的增加count()()的输出就加一是不是这样

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

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

2回答
提问者 慕仰8079247 2019-07-11 11:24:56

全局变量是不是执行了num=1,又要执行num++这样才结束是吧

  • 理解的还有点问题,调用count方法的时候已经初始化num值为1了,fn是返回来的funciton,调用fn只会进行num++计算,不会再初始化了。
    2019-07-11 14:34:37
好帮手慕星星 2019-07-11 10:50:10

同学你好,看你的描述理解的可能有问题,首先看结果:

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

1、前面三次输出结果都是1 。这是因为每次count方法都是重新调用,重新初始化num值为1,所以num++的结果就是1 。

2、后面三次结果是累加的。这是因为count方法调用之后赋值给了全局变量fn。num是局部变量,一般count调用之后局部变量会被释放,但是返回的function中用到了num值,并且一个全局变量接收了这个function,全局变量不会自动释放,所以num值也就不会被释放了。每次调用fn的时候就会在原来的基础上加1,如果继续调用fn(),也就是第四次调用,输出的结果为4 。

自己可以测试理解下,祝学习愉快!

望采纳~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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