2011-11-14 74 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

相关问题