2011-06-24 65 views

回答

6

它自己除了聲明一個未使用的變量外什麼都不做 - 它應該調用一些其他函數來做一些有用的事情。

這就是說,你有什麼是立即調用的函數表達式,即匿名函數:

function() { ... } 

被調用不帶參數:

(f....)(); 

的理由有兩個方面:

  • 它允許函數被定義d並在全局名稱空間中調用時未給出名稱
  • 定義的任何變量之內的函數也在該範圍內,並且不污染全局名稱空間。
+4

每個函數表達沒有名字是匿名函數。 –

3

這是一個匿名函數,立即執行。

這個想法是創建一個私人範圍。通常會從匿名函數返回一個閉包,該閉包保留對該範圍中創建的變量的訪問。

例如

var greet = (function() { 
    var foo = 'Hello world'; 
    return function() { 
     alert(foo); 
    } 
}()); 

greet(); 
相關問題