2011-11-14 69 views
-2

您認爲哪一個是更好,更快,更好的聲明函數的解決方案?var myFunction = function(){}; vs function myFunction(){};

第一:

(var) myFunction = function(){ 
//Stuff to do 
}; 

或二:

function myFunction() { 
//Stuff to do 
}; 

雙方將在JavaScript和JQuery工作。但你認爲更好?

+0

每個人都喜歡一些或其他的編碼風格。我認爲第二個仍然是一個更好的選擇,因爲它的可讀性和效率更高 – Rohan

+0

[Javascript:var functionName = function(){} vs function functionName(){}](http://stackoverflow.com/questions/336859/javascript-var-functionname-function-vs-function-functionname) – duri

回答

7

請注意,兩者的行爲不同 - 在執行代碼之前定義了由function語句定義的函數。

typeof f; //returns 'undefined' 
var f = function() {}; 

typeof f; //returns 'function' 
function f() {} 

(你是否也注意到,我沒有和在那裏我沒有用分號?)

此外,函數語句(第二個選項)塊被禁止。它不是規定的下列應如何工作:

if (false) { 
    function f(){} 
} 

因此它可能是功能f會,雖然不合邏輯,在某些瀏覽器中聲明。然而,它允許執行以下操作:問一個問題之前

var f; 
if (some expr) { 
    f = function() {}; 
} 

下一次更好的搜索,var functionName = function() {} vs function functionName() {}

+0

Thx對於這個很好的解釋!問候 – blackrafi

相關問題