2011-11-14 2 views
-2

Selon vous, quelle est la solution la meilleure, la plus rapide et la plus agréable pour déclarer une fonction?var myFunction = function() {}; vs fonction myFunction() {};

Première:

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

ou deuxième:

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

deux travaillera en JavaScript et JQuery. Mais que pensez-vous est mieux?

+0

tout le monde aime une ou l'autre style de codage. Je pense que le second est toujours une meilleure option, comme son plus facile et lisible – Rohan

+0

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

Répondre

7

Notez que les deux se comportent différemment - les fonctions définies par l'instruction function sont définies avant l'exécution du code.

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

mais

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

(Avez-vous aussi remarqué où je l'ai fait et où je n'ai pas utilisé virgule?)

En outre, les instructions de fonction (la deuxième option) sont interdits dans les blocs . Il ne se définit pas comment les éléments suivants devraient fonctionner:

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

donc il est possible que la fonction f sera, bien que illogiquement, a déclaré dans certains navigateurs. Cependant, il est permis de faire ce qui suit:

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

La prochaine fois meilleure recherche avant de poser une question, var functionName = function() {} vs function functionName() {}

+0

Merci pour cette bonne explication! Cordialement – blackrafi

Questions connexes