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.
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). –
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
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. –