Maison > interface Web > js tutoriel > Quand les parenthèses sont-elles importantes dans les appels de fonctions JavaScript ?

Quand les parenthèses sont-elles importantes dans les appels de fonctions JavaScript ?

Linda Hamilton
Libérer: 2024-11-25 14:56:11
original
350 Les gens l'ont consulté

When Do Parentheses Matter in JavaScript Function Calls?

Parenthèses dans les déclarations de fonction et les invocations

En JavaScript, la distinction entre les déclarations de fonction et les invocations apparaît dans leur syntaxe. Alors que les déclarations de fonction se terminent par des accolades, les invocations de fonctions se terminent par des parenthèses.

Considérons l'exemple suivant :

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

Ici, la fonction setTimeout attend une référence de fonction comme argument. Lorsque vous écrivez myFunction, vous faites référence à la fonction elle-même. En revanche, myFunction() appelle en fait la fonction.

Bien que cela semble simple, il existe des exceptions. setTimeout peut également accepter une fonction qui renvoie une fonction, comme dans le code suivant :

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

// or

const myFunction = () => () => alert("ohai");
Copier après la connexion

Dans ce scénario, setTimeout(myFunction(), 1000) :

  1. Appelez la fonction myFunction et stockez sa valeur de retour.
  2. Obtenez la fonction que myFunction renvoyé.

Cela planifie effectivement l'affichage d'une alerte toutes les secondes.

Par conséquent, la principale différence est que lorsque vous omettez les parenthèses, vous faites référence à l'objet fonction lui-même. Lorsque vous incluez des parenthèses, vous appelez la fonction. Cela s'applique aux déclarations de fonction, telles que var myFunction = function() { ... } et aux expressions de fonction, telles que const myFunction = () => { ... }.

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