Invocation de fonctions avec parenthèses en JavaScript : dévoiler les distinctions
Lors de l'invocation de fonctions en JavaScript, la question se pose souvent : la présence ou l'absence des parenthèses font une différence ? Approfondissons cela.
Scénario 1 : Exécuter la fonction immédiatement
window.onload = initAll();
Dans ce scénario, les parenthèses autour de initAll() indiquent que la fonction est exécutée immédiatement. Le résultat de cette exécution, qui est généralement une valeur de retour, est ensuite affecté à window.onload. Généralement, il n'est pas souhaitable d'exécuter la fonction et d'attribuer sa valeur de retour au gestionnaire d'événements, surtout si la fonction ne renvoie pas de résultat significatif.
Scénario 2 : attribution de la référence de fonction
window.onload = initAll;
Ici, l'absence de parenthèses indique que nous attribuons l'objet fonction lui-même, plutôt que sa valeur de retour, à window.onload. Cela est possible grâce à la fonctionnalité JavaScript selon laquelle les fonctions sont considérées comme des objets de première classe. L'exécution de la fonction est retardée jusqu'à ce que l'événement de chargement se produise.
Alternative : appel avec une fonction de flèche
window.onload = () => initAll();
Dans cette variante, une fonction de flèche est créée. Lorsque cette fonction est invoquée (dans ce cas, lorsque l'événement de chargement est déclenché), elle appelle immédiatement initAll(). Les parenthèses sont ici cruciales pour séparer la déclaration de la fonction flèche de l'appel de fonction à l'intérieur.
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!