2011-11-14 14 views
-2

関数を宣言するには、どちらが優れていて、より速く、より良い解決策であると思いますか?var myFunction = function(){}; vs関数myFunction(){};

まず:

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

または第二:

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

両方のJavaScriptとjQueryで動作します。しかし、あなたはどう思いますか?

+0

誰もがいくつかまたは他のコーディングスタイルを愛しています。私は2番目の方がより読みやすく、効率的なので、より良い選択肢であると思う。 – Rohan

+0

[Javascript:var functionName = function(){}対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