Quand utiliser les parenthèses dans les appels de fonction
En examinant le code suivant :
var myFunction = function() { setTimeout(myFunction, 1000); } myFunction();
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
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!