Maison >interface Web >js tutoriel >Quand utiliser des parenthèses avec des références de fonctions JavaScript ?

Quand utiliser des parenthèses avec des références de fonctions JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-05 10:27:13615parcourir

When to Use Parentheses with JavaScript Function References?

Quand utiliser les parenthèses et quand ne pas les utiliser ?

En JavaScript, il est crucial de comprendre quand utiliser les parenthèses et quand ne pas les utiliser, en particulier avec la fonction références. Considérez le code suivant :

var myFunction = function() {
   setTimeout(myFunction, 1000);
}
myFunction();

Pourquoi l'appel de fonction dans setTimeout ne nécessite-t-il pas de parenthèses, alors que la dernière ligne le fait ?

En bref

  • myFunction fait référence à la fonction
  • myFunction() appelle le function

Explication détaillée

setTimeout accepte une référence de fonction comme argument. Dans la première ligne, setTimeout(myFunction, 1000) transmet la référence de la fonction sans parenthèses car il attend une référence.

Cependant, dans la dernière ligne, myFunction() appelle en fait la fonction. Pour invoquer une fonction, nous utilisons des parenthèses pour l'exécuter. Par conséquent, myFunction() exécute la fonction et nécessite donc des parenthèses.

Exception

Il peut y avoir des cas où setTimeout(myFunction(), 1000) est approprié, comme lorsque myFunction() renvoie une fonction. Par exemple :

function myFunction() {
    return function() {
        alert("ohai")
    }
}

// Or

const myFunction = () => () => alert("ohai")

Dans ce cas, setTimeout(myFunction(), 1000):

  • Appelle la fonction externe myFunction
  • Obtient la valeur de retour, qui est une fonction interne
  • Passe la fonction interne comme argument à setTimeout

Cela entraîne une alerte toutes les secondes.

Conclusion

Comprendre le but des parenthèses dans les références de fonction est essentiel pour un JavaScript efficace programmation. En vous rappelant que les parenthèses indiquent un appel de fonction, vous pouvez les utiliser correctement pour appeler des fonctions ou transmettre des références de fonction selon vos besoins.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn