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
Linda Hamiltonoriginal
2024-11-25 14:56:11356parcourir

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();

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");

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!

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
Article précédent:Crochets dans ReactArticle suivant:Crochets dans React