在菜鸟教程看的JS没看懂一段代码,求教!

var add = (function () {
var counter = 0;
return function () {return counter += 1;}
})();
看到闭包的时候看到的,上面的代码简化后就是var add=()();
求解释这两个括号是什么意思?

function () {return counter += 1;} -------------这个你懂得

function () {
var counter = 0;
return function () {return counter += 1;}
}--------------------返回一个匿名函数的函数
(function () {
var counter = 0;
return function () {return counter += 1;}
})()------------------------立刻执行这个返回一个匿名函数的函数

-----------------------------------------------------------------
所以 add() = 1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-23
如果只执行add(),最终的结果就是返回一个函数function(){return(++count)}。
第2个回答  2019-07-06

这篇文章解释的不错

网页链接

相似回答