2014-09-19 79 views
0

我最近啓動了Angular.js教程,其中顯示了編寫在Immediately Invoked Function Expression (IIFE)內部的代碼。我想知道爲什麼我們應該把JavaScript放在這樣的構造中?這是出於安全原因嗎?爲什麼我們應該把JavaScript代碼放入一個IIFE?

例如:爲什麼這樣的:

(function(){ 
    var app = angular.module("AppName", []) 
})(); 

而且不只是這一點:

var app = angular.module("AppName", []) 
+0

對不起,不知道IIFE是另一種叫它的方式。我會投票結束這個問題。 – siannone 2014-09-19 16:50:13

+1

這一切都很好,我只是想澄清條款,而另一個人注意到,澄清的條款已經被問到。閉包實際上與IFFE不同,儘管IIFE是創建閉包的一種方式。 – JAAulde 2014-09-19 16:51:32

+0

請注意,這些例子完全不同。 – Teemu 2014-09-19 17:02:39

回答

1

擁有的應用程序作爲一個全局變量可能導致衝突

1

它阻止你創建一個全局變量。

+0

但是,如果我使用require.js,那麼我猜它是沒用的吧? – siannone 2014-09-19 16:39:32

+1

非常多,因爲requirejs會將它封裝在自己的閉包中。 – 2014-09-19 16:40:32

相關問題