我得知IIFE用於防止污染全局名稱空間。我不明白的是,假設你有一個共享相同名稱的變量,如果你要在一個給定函數內使用關鍵字var
來聲明一個變量,那麼在運行時函數被調用時無關緊要時間? 我可能使它聽起來比它更復雜的,但看看下面的代碼塊:立即在Javascript中調用函數表達式(IIFE)用例
例1:沒有IIFE
var firstName = "eugene";
function name(){
var firstName = "bobby";
console.log(firstName);
}
name(); //bobby
console.log(firstName); //eugene
示例2:使用IIFE
var firstName = "eugene";
(function(){
var firstName = "bobby";
console.log(firstName);
})();
console.log(firstName);
例2輸出基本相同的東西。使用IIFE的要點是什麼?如果它將出現同樣的事情?
這個問題有很多例子已經在堆棧上。 http://stackoverflow.com/questions/14317998/immediately-invoked-function-expression-iife-vs-not – SoEzPz
[名稱IIFE和立即調用名稱函數之間的區別?](http:// stackoverflow .com/q/15688420/1048572) – Bergi
它只是一個被稱爲immedaitely的函數。爲什麼它需要有一個點?它做它做的事情。 –