为了账号安全,请及时绑定邮箱和手机立即绑定

JS内嵌函数和自我调用的问题

JS内嵌函数和自我调用的问题

Smart猫小萌 2018-12-20 18:18:46
代码var add = function(){    var count = 0;    return functon(){       return count+=1;    }}如果仅仅是这样的话,那么我调用add()时,只会输出:function(){return count+=1;},如果加上自调之后,输出是正常的,每次点击加1.这里我就不是很明白了,难道我调用add()函数只会执行最外层函数,而不会执行内嵌函数吗?不是很明白原理,请大神解释一下
查看完整描述

1 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

你return的是一个function,属于高阶函数,不是函数调用,所以不会立即执行


var add = function(){

    var count = 0;

    return (function(){

       return count+=1;

    })();

}

这样才会执行


高阶函数是指至少下面条件之一的函数

函数作为参数传递

函数作为返回值输出   


查看完整回答
反对 回复 2019-01-19
  • 1 回答
  • 0 关注
  • 426 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号