2012-10-10 6 views
0

Possible en double:
What is the difference between a function expression vs declaration in Javascript?JavaScript myFunction: fonction (int x) vs fonction myFunction (int x)?

Quelle est la différence entre les deux façons de déclarer une fonction JavaScript?

myFunction : function(variable) 
{ 

} 

ou

function myFunction(variable) 
{ 

} 
+4

Le premier extrait n'est pas valide sauf s'il se trouve dans le contexte d'un littéral d'objet. Si vous voulez connaître la différence entre les expressions de fonction et les déclarations: http://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression-vs-declaration-in-javascrip et http : //stackoverflow.com/questions/5403121/whats-the-difference-between-function-foo-and-foo-function. Les typeshints tels que 'int' n'existent pas non plus dans JS (ce qui est également invalide). –

+0

Il est à l'intérieur de var x = declare ("...", {<>}); Que fait cette syntaxe? Est-ce que je ne peux pas utiliser la syntaxe régulière à l'intérieur d'un objet comme ça? – antonpug

+1

Donc '{<}}' est un littéral d'objet et 'myFunction' en est une propriété, contenant une fonction comme valeur. Cependant, dans le premier cas, vous avez une expression de fonction et dans la seconde, une déclaration de fonction et les différences entre les deux ont été discutées en détail auparavant. –

Répondre

1

L'un est une méthode. L'autre une fonction.

fonctions sont définies

function myfunction() {..} 

méthodes sont définies

myobject.mymethod = function() {...} ; 

Une méthode est une propriété d'un objet qui pointe vers/est une fonction de cet objet

En réalité, il dépend de comment vous structurez vos objets. Les fonctions sont généralement utilisées dans les bibliothèques globales qui ne sont pas spécifiques aux objets, tandis que les méthodes sont liées à des objets pour exécuter des fonctionnalités spécifiques.

+0

que fait l'opérateur ":"? – antonpug

+1

Deux exemples de définition d'une méthode myobject.mymethod = nomFonction ou fonction() {...}; Mymethod: function (params) { // ... font quelque chose } }; – DRobertE

+0

: définit une paire de valeurs clé ... propriété: valeur où la propriété peut être une méthode ou une variable et une valeur peut être une déclaration de fonction, une définition ou un nom de fonction qui est juste un pointeur vers la fonction ou une valeur 2 – DRobertE

2

Votre premier extrait de code n'est pas valide - il ne fonctionne que dans un objet; exemple:

var object = { 
    myFunction: function(variable) { } 
}; 
// object.myFunction(); 


Fondamentalement, il existe deux façons de définir une fonction ins JavaScript:

function myFunction(variable) { } 

var myFunction = function(variable) { }; 

La différence est: Le premier type de déclaration utilise l'instruction function et donc vous permet d'utiliser la fonction avant d'avoir été déclarée. Exemple:

console.log(myFunction()); // prints test 
function myFunction(variable) { return "test"; } 

En savoir plus à ce sujet here.

Cela n'est pas possible avec le second type de déclaration de fonction, qui attribue une fonction anonyme à une variable. La fonction ne peut pas être utilisée avant que la variable ait été déclarée.

Questions connexes