2012-09-02 94 views
3

有聲明一個JavaScript函數兩種常用的方法爲什麼像jQuery這樣的JavaScript庫通常比匿名函數更喜歡匿名函數?

方法1:命名功能

function add(a, b) 
{      
    return a+b; 
} 

要調用我們使用上述功能add(3,4);

方式2:匿名函數

var add = function(a, b) 
{      
    return a + b; 
} 

要調用此函數,我們再次使用add(3,4);

兩者都產生相同的結果。我總是按照這種方式學習JavaScript,然後一路走。但大多數新的JavaScript庫,如jQuery似乎使用方式2.

爲什麼方式2首選方式1在大多數JavaScript庫?根據我的理解,兩者都會產生相同的行爲。唯一的區別在於方式1,該函數可用於上面運行的代碼,其中聲明瞭函數,方式2中不是這樣。這是新JavaScript庫使用方式2的唯一原因,以便他們可以確保他們的庫首先被包含,然後調用它們的函數?

+1

精確dupliate:http://stackoverflow.com/questions/336859/javascript-var-functionname-function-vs-function-functionname – jacktheripper

+0

阿卡。在技​​術術語中「命名功能vs匿名功能」。 – inhan

+0

我可能不清楚在問我的問題。我的主要動機是爲什麼像jQuery一些JavaScript庫更喜歡命名函數的匿名函數。例如我們使用$(「#custId」),其中$是變量賦值給函數'jquery' –

回答

1

匿名函數用於舒適地定義對象。圖書館經常放棄命名聲明並僅使用匿名(即使沒有特別需要)的原因是要提高代碼的可讀性,所以你沒有兩種方法在代碼中聲明一件事。

var x = function() { 
    //constructor 
} 

x.y = function() { 
    //first method 
}