2016-09-22 107 views
0

的方法之一是它好寫這樣的嵌套函數?的JavaScript - 寫嵌套函數

var player = function() { 
    //'use strict'; 

    var setLives = function() { 
     return 3; 
    }; 

    var lives = setLives(); 

    console.log(lives); 
}; 

player(); 

在JSLint的會是這樣(相當醜陋的):

var player = function() { 
    'use strict'; 

    var setLives = function() { 
      return 3; 
     }, 
     lives = setLives(); 

    console.log(lives); 
}; 

player(); 

大多數人似乎用下面的辦法:

var player = function() { 
    //'use strict'; 

    function setLives() { 
     return 3; 
    } 

    var lives = setLives(); 

    console.log(lives); 
}; 

player(); 

它我使用的無論哪個方法或將後者是首選?

將它減慢代碼或有什麼區別?

提前致謝!

回答

1

對於引用代碼,這都沒有區別;這完全是一個風格問題。

有時候,人們喜歡,因爲在函數的代碼的一步一步的流程中發生的那些寫函數表達式(var setLives = function() { };)。

有時候,人們喜歡寫函數聲明(function setLives() { }),因爲它們被處理前的功能代碼的一步一步的流程。

如果函數的定義將是根據條件不同...

if (someCondition) { 
    // One definition for it 
} else { 
    // A different definition 
} 

...那麼它必須使用函數表達式,不聲明。

+0

有任何場景會的問題? –

+1

@BlazeSahlzen:如果重要的是它發生在一步一步的流程中,那麼你需要使用一個表達式。如果它在分步流程之前發生很重要,那麼你需要寫一個聲明。如果函數的定義基於運行時條件而變化,則需要一個表達式。 –

+0

感謝您的回覆。這是一個很好的例子。我正在使用一個條件並在其中添加一個方法。我認爲它是一個函數表達式是正確的方法? – Paddy