从C++/Java转过来学JS有点不习惯,JS闭包这个表达式()()连续两个括号?为什么把还可以把function括起来然后又加一个()啊。比如这个,把这个迭代器function括起来,加参数(i),外面的括号(0)就表示调用0了,把0传进去i。还有这个,var a = 6;(function() {var a = 5;})();a = 6//true。这个闭包创造新的作用域,闭包一定是()()这种表达式吗?为什么是这个规范。抱歉,初学JS,很不习惯。
1 回答

四季花海
TA贡献1811条经验 获得超5个赞
在函数后面加个圆括弧就是调用函数嘛,声明函数的时候就在后面加圆括弧就是立即调用函数表达式嘛,每一个函数都可以生成一个新的作用域!当一个函数已经执行完毕之后还保留着一些变量的访问那才是闭包!
添加回答
举报
0/150
提交
取消