J'ai vu des exemples de code récents qui placent des fonctions à l'intérieur de variables, puis appelant les fonctions telles que la normale.
comme dans: p> Je suis sûr qu'il y a beaucoup de choses d'avantages avec des scénarios plus avancés, mais je suis juste curieux. p> p>
3 Réponses :
Il n'y a aucun avantage, vous ne placez pas une fonction à l'intérieur em> une variable que vous nommez simplement la fonction différemment. foo("Hello!");
/* Later on... */
var foo = function () { /* ... */ }
Pour un petit exercice de pensée, var foo = barre de fonction (); Bar === foo?
Il y a des choses que vous pouvez faire avec une expression de fonction que vous ne pouvez pas avec une déclaration.
Il pourrait être immédiatement invoqué et la valeur de retour stockée dans la variable p> li>
Si vous n'êtes pas dans l'espace de noms global, vous pouvez exclure le mot-clé edit: strong> p> Voici un exemple d'invocation immédiate. Il renvoie une fonction à la variable code> myFonctionnée code> qui a accès aux variables et paramètre scopé dans la fonction immédiatement invoquée. P> var code> pour créer un global p> li>
ul>
var counter = function( value ) {
return function( addValue ) {
value += ~~addValue;
return value;
};
}( 10 ); // initialize with a value
// each call builds on the result of the previous
console.log( counter( 2 ) ); // 12
console.log( counter( 5 ) ); // 17
console.log( counter( 3 ) ); // 20
console.log( counter( 7 ) ); // 27
console.log( counter( 1 ) ); // 28
Ceci s'appelle une expression de fonction, qui a un comportement légèrement différent d'une déclaration de fonction. Entre autres choses, il agit différemment en ce qui concerne le moment où vous pourrez y référer. Par exemple, si vous faites:
function myFunctionName() { Code Here... }
Lisez l'article de la première réponse - Stackoverflow.com/Questtions/1013385/... lien direct vers l'article - kangax.github.com/nfe