Maison >interface Web >js tutoriel >Pourquoi invoquons-nous des fonctions JavaScript anonymes sur la même ligne qu'elles sont définies ?
Invoquer des fonctions anonymes sur la même ligne : pourquoi c'est important
Dans le contexte des fermetures, les fonctions anonymes sont souvent invoquées sur la même ligne tels qu'ils sont définis. Cette pratique soulève des questions sur les mécanismes sous-jacents et les raisons qui la sous-tendent.
En Javascript, les fonctions peuvent être définies à l'aide de trois méthodes. Premièrement, le constructeur Function crée des fonctions à l’aide du nouveau mot-clé. Deuxièmement, les déclarations de fonction utilisent le mot-clé function et un nom de fonction. Enfin, les expressions de fonction attribuent des fonctions à des variables sans spécifier de nom.
Dans le code fourni, une fonction anonyme est définie à l'aide d'une expression de fonction :
(function(msg){alert(msg)})('SO');
Cependant, si le point-virgule après le la définition de la fonction est supprimée, le code échoue :
(function (msg){alert(msg)}) ('SO');
En effet, sans le point-virgule, le code est interprété comme deux déclarations :
Ceci n'est pas sémantiquement correct, car la fonction n'est pas définie auparavant ça s'appelle. Pour éviter cette erreur, le point-virgule doit être présent.
Alternativement, l'expression de fonction peut être définie et invoquée comme suit :
var myFunc = function(msg){alert(msg);} myFunc('SO');
Dans ce cas, la fonction est affectée à une variable avant qu'il ne soit invoqué. Cependant, cette approche nécessite une fonction nommée, ce qui n'est pas toujours souhaité.
La pratique consistant à invoquer des fonctions anonymes sur la même ligne permet une exécution immédiate de la fonction sans avoir besoin d'une variable nommée. Ceci est particulièrement utile lors de l’encapsulation de code qui ne doit être exécuté qu’une seule fois. De plus, cela permet d'éviter les conflits de noms et de réduire le nombre de variables globales dans la base de code.
Pour une meilleure compréhension des fonctions anonymes et des expressions de fonction, reportez-vous à la spécification du script ECMA (Section 13 Définition de la fonction) ou à des ressources supplémentaires telles que "JQuery et $ questions" ou les exemples fournis dans les extraits de code ci-dessus.
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!