: javascript

Fonctions de retour (callback functions)

Une fonction de retour (callback) est une fonction comme les autres. Sa particularité est qu'elle est appelée par une autre qui l'a reçu en tant que paramètre. Voici une fonction qui reçoit une fonction en paramètre:

function test(fct_retour) {
  fct_retour(); // appel de la fonction
}

C'est la fonction test qui appelle la fonction de retour. Il est donc possible de donner différentes fonctions de retour entre deux appels successifs à la fonction test.

function retour1() {
  alert('Retour 1');
}

function retour2() {
  alert('Retour 2');
}

test(retour1); // affiche 'Retour 1'
test(retour2); // affiche 'Retour 2'

On soulignera une première chose importante. Quand on passe une fonction en paramètre, on donne juste son nom, sans les parenthèses. La présence de parenthèses provoque un appel de fonction.

test(retour1()); // Faux !
test(retour1); // Juste

Le premier appel ci-dessus ne passe pas la fonction retour1 en paramètre, mais le résultat retourné par celle-ci.

Dans l'exemple ci dessus on aurait pu passer une fonction anonyme en paramètre à la fonction test comme ceci:

test( function() { alert('Hello'); } );

Dans ce cas précis on préfère écrire le code ainsi:

test(
  function() {
    alert('Hello');
  }
);
Editer