函数作为返回值的输出结果

函数作为返回值的输出结果

http://img1.sycdn.imooc.com/climg//592efef10001ab4e07500928.jpg

不知道结果是怎么得来的,可不可以一步步的讲解一下?

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

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

2回答
怎么都被占用了呢 2017-06-25 12:00:14

num++是 先返回值,后值加1,++num是先加1,后返回值。这就是运算规则。 

小于飞飞 2017-06-01 16:22:42

你好,要清楚知识,return 可以返回函数。调用执行函数:  函数名();代码解析如下:

function count(){  // 定义函数 count()
    var num=1; // 变量初始值 num=1; 注意函数体内定义的变量只在函数内可以访问。函数体外访问不了。
    return function(){  // count() 函数的返回值是函数
        return num++;  // 该函数的返回值是 num++ ; 注意num++ 先返回值在运算。
        };
}
document.write(count()()+"<br/>"); 
// count() 执行该函数,返回 function()函数,然后在count()()相当执行返回的这个函数 ,即返回 num++,结果为1;
document.write(count()()+"<br/>"); // 重新执行count()(),结果还为1
document.write(count()()+"<br/>"); // 重新执行count()(),结果还为1
var fn = count();  // 相当于 var fn = function(){}。
document.write(fn()+"<br/>"); // fn() 相当执行 function(){} , 即结果 1;
document.write(fn()+"<br/>"); // 在执行fn() 第二次执行 function(){} , 即结果 2;
document.write(fn()+"<br/>"); // 在执行fn() 第三次执行 function(){} , 即结果 3;

希望对你有帮助,祝学习愉快。如解决你的疑惑,欢迎采纳。

  • 返回值num++不是应该返回num = num + 1 吗 ,为什么是先返回值再运算?
    2017-06-25 00:37:07
  • 麻烦问下 老师 调用函数时 函数名后有两个()代表什么意思。count()()
    2017-10-23 22:59:04
  • count()表示一个函数,count()()表示是调用这个函数。
    2017-10-24 10:02:10
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

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

在线咨询

领取优惠

免费试听

领取大纲

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