⊗jsPmFNFRF 252 of 505 menu

Fonction retournant une fonction en JavaScript

Supposons que nous ayons une fonction comme celle-ci, retournant une chaîne de caractères :

function func() { return '!'; } let result = func(); console.log(result); // affichera '!'

Maintenant, au lieu d'une chaîne, par analogie, retournons une fonction anonyme :

function func() { return function() { return '!'; }; } let result = func(); // la variable result contiendra une fonction console.log(result); // affichera 'function() {return '!';}'

Comme vous le voyez, la variable result représente maintenant une fonction. Affichons dans la console le résultat de son exécution. Pour cela, ajoutons des parenthèses :

function func() { return function() { return '!'; }; } let result = func(); console.log( result() ); // affichera '!'

Puisque l'appel func() retourne une fonction, nous pouvons immédiatement appeler cette fonction retournée, comme ceci : func()() - les premières parenthèses obtiennent le résultat de la fonction func (qui est lui-même une fonction), et les deuxièmes parenthèses sont appliquées au résultat de func.

Essayons :

function func() { return function() { return '!'; }; } console.log( func()() ); // affichera '!'

Créez une fonction func1 qui, lorsqu'elle est appelée comme ceci : func1()(), retourne le nombre 1. Créez une fonction similaire func2, retournant le nombre 2. Trouvez la somme des résultats de ces fonctions.

byaztridpl