2016-05-31 29 views
1

所以我有一个采访,我问声明和immideately调用函数的目的,我不能回答这个问题,即:的javascript:原因声明和immedieatly调用内联函数

(function(){ 

    // code 
})(); 

什么这样做的原因?

+0

封装。函数具有它自己的范围,从外部看不到。 – Georgy

+0

一般来说它是一个很好的做法,以避免污染全局范围和具有的功能 – Vijaykrish93

+0

可能的复制的范围内的所有参考文献[什么是(函数(){})()在JavaScript构建?](HTTP://计算器.COM /问题/ 8228281 /什么 - 是 - 的 - 功能 - 结构 - 中的JavaScript) –

回答

3

Object-Oriented JavaScript - Second Edition:一个很好的即时(自调用)的应用程序的匿名功能 是当你想有一些工作,而无需创建额外的全局变量 完成。当然,缺点是你不能执行两次相同的函数。这使得即时功能最适合于一次性 或初始化任务。

语法一开始可能看起来有点吓人,但你所做的仅仅是 在括号内放置一个函数表达式,后面跟着另一个圆括号 。第二组表示,“现在执行”,也是 地方放任何参数,你的匿名函数可以接受:

(function() { 

})(); 

(function() { 

}()); 

是相同的: