En JavaScript, des fonctions anonymes peuvent être définies et immédiatement invoquées sur la même ligne. Cette technique est couramment utilisée pour créer des fermetures ou modulariser du code. Cependant, il peut être difficile de comprendre pourquoi les deux étapes doivent être effectuées sur la même ligne.
Les fonctions JavaScript peuvent être définies à l'aide de deux méthodes : les expressions de fonction et les déclarations de fonction. Les déclarations de fonction, comme la fonction sum(a, b) { ... }, créent des fonctions nommées qui font partie de la portée globale. Les expressions de fonction, en revanche, créent des fonctions anonymes qui sont généralement stockées dans des variables ou utilisées comme rappels.
Pour exécuter une fonction anonyme, vous devez l'envelopper dans parenthèses, par exemple (function() { ... })(). Cette syntaxe vous permet d'invoquer immédiatement la fonction sans avoir à l'attribuer à une variable.
Si vous essayez de définir et d'invoquer une fonction anonyme sur des lignes distinctes, vous obtenir une erreur :
( function (msg){ alert(msg); } // missing semicolon ); // semicolon ends the statement ('SO');
Cela est dû au fait que le point-virgule après la définition de la fonction termine l'instruction, laissant la ligne suivante comme une expression de parenthèses autonome. Pour résoudre ce problème, vous devez supprimer le point-virgule et appeler la fonction sur la même ligne :
(function (msg){ alert(msg); })('SO');
La raison de cette exigence provient du comportement d'insertion du point-virgule de JavaScript. S'il manque un point-virgule à la fin d'une instruction, JavaScript en insère automatiquement un. Dans l'exemple ci-dessus, lorsque vous supprimez le point-virgule après la définition de la fonction, JavaScript en insère un à la fin de la ligne, mettant ainsi fin à l'instruction de fonction.
L'invocation immédiate du la fonction anonyme sert également à créer une fermeture. Une fermeture est une fonction qui a accès aux variables de sa portée parent, même une fois l'exécution de la fonction parent terminée. Dans l'exemple ci-dessus, la fonction anonyme a accès à la variable msg, qui serait normalement hors de portée une fois le corps de la fonction terminé.
Invoquer une fonction anonyme sur la même ligne est une technique qui permet la création de fermetures et de code modulaire. Il est essentiel de comprendre la différence entre les expressions de fonction et les déclarations, ainsi que le comportement d'insertion des points-virgules de JavaScript, pour éviter les erreurs courantes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!