猿问

JS,Nodejs大神进,闭包简单问题

从C++/Java转过来学JS有点不习惯,JS闭包这个表达式()()连续两个括号?为什么把还可以把function括起来然后又加一个()啊。

比如这个,把这个迭代器function括起来,加参数(i),外面的括号(0)就表示调用0了,把0传进去i。

还有这个,

var a = 6;

(function() {
var a = 5;
})();

a = 6//true。

这个闭包创造新的作用域,闭包一定是()()这种表达式吗?为什么是这个规范。

抱歉,初学JS,很不习惯。


Cats萌萌
浏览 896回答 1
1回答

四季花海

在函数后面加个圆括弧就是调用函数嘛,声明函数的时候就在后面加圆括弧就是立即调用函数表达式嘛,每一个函数都可以生成一个新的作用域!当一个函数已经执行完毕之后还保留着一些变量的访问那才是闭包!
随时随地看视频慕课网APP

相关分类

Java
我要回答