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) :
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!