Passage de fonctions en paramètres en JavaScript
Les fonctions, tout comme les nombres, les chaînes de caractères et les tableaux, peuvent être passées en paramètres à d'autres fonctions.
Examinons cela plus en détail avec un exemple pratique.
Supposons que nous ayons une fonction test prenant
deux paramètres :
test(paramètre1, paramètre2);
Passons en premier paramètre de la fonction test
une fonction anonyme retournant
1, et en deuxième paramètre - une fonction
anonyme retournant 2 :
test(
function() {return 1;},
function() {return 2;}
);
Le code ci-dessus ne fonctionne pas encore, car nous n'avons pas créé la fonction elle-même. Faisons cela :
function test(func1, func2) {
}
Lors de la définition de la fonction, nous avons spécifié deux paramètres
- func1 et func2. Ces paramètres
ne savent rien de ce qui leur sera passé.
Nous pourrions, par exemple, passer des nombres :
test(1, 2); // appel de la fonction
function test(func1, func2) {
console.log(func1); // affichera 1
console.log(func2); // affichera 2
}
Ou nous pouvons passer des fonctions :
test(
function() {return 1;}, // premier paramètre
function() {return 2;} // deuxième paramètre
);
function test(func1, func2) {
console.log(func1); // affichera 'function() {return 1;}'
console.log(func2); // affichera 'function() {return 2;}'
}
Comme vous le voyez, le code source des fonctions est maintenant affiché dans la console. Faisons en sorte qu'il affiche leurs résultats. Pour cela, ajoutons des parenthèses aux fonctions :
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // affichera 1
console.log( func2() ); // affichera 2
}
Affichons dans la console la somme des résultats de la première et de la deuxième fonction :
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // affichera 3
}
Créez une fonction test prenant en paramètres
3 fonctions. Passez-lui en premier paramètre une fonction retournant
1, en deuxième - une fonction retournant
2, en troisième - une fonction retournant
3. Affichez dans la console la somme des résultats
des fonctions.