Maison > interface Web > js tutoriel > le corps du texte

Pourquoi les parenthèses n'entourent-elles pas toujours les appels de fonction dans `setTimeout` ?

Mary-Kate Olsen
Libérer: 2024-11-23 18:27:17
original
679 Les gens l'ont consulté

Why Don't Parentheses Always Surround Function Calls in `setTimeout`?

Quand utiliser les parenthèses dans les appels de fonction

En examinant le code suivant :

var myFunction = function() {
  setTimeout(myFunction, 1000);
}
myFunction();
Copier après la connexion

On peut se demander pourquoi l'appel de fonction dans setTimeout ne nécessite pas de parenthèses alors que l'invocation de fonction indépendante fait.

Comprendre la distinction

  • maFonction : Ce nom fait référence à la définition de la fonction.
  • myFunction() : L'ajout de parenthèses invoque le function.

Arguments de la fonction Timeout

setTimeout prend une référence de fonction comme l'un de ses arguments. Dans le code donné, myFunction est référencée comme fonction de rappel.

Parenthèses dans les arguments de délai d'attente

L'inclusion de parenthèses dans setTimeout(myFunction(), 1000) peut avoir des conséquences inattendues si myFunction renvoie une fonction (par exemple, en utilisant des fonctions fléchées). Dans de tels cas, setTimeout recevrait la valeur de retour de myFunction au lieu de la référence de fonction elle-même. Cela pourrait conduire à des exécutions de fonctions répétitives ou à un comportement inattendu.

Par conséquent, lors de l'utilisation de setTimeout ou de méthodes similaires qui attendent une référence de fonction, il est généralement recommandé de omettre les parenthèses pour l'argument de la fonction.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal