Tous les exemples présentés ici semblent montrer comment le déclarer, mais pas comment l'utiliser. Je pense que c'est aussi la raison pour laquelle @Kiran a eu tant de problèmes.
L'astuce consiste à déclarer la fonction qui utilise un callback :
function doThisFirst(someParameter, myCallbackFunction) {
// Do stuff first
alert('Doing stuff...');
// Now call the function passed in
myCallbackFunction(someParameter);
}
El someParameter
peut être omis s'il n'est pas nécessaire.
Vous pouvez ensuite utiliser le rappel comme suit :
doThisFirst(1, myOtherFunction1);
doThisFirst(2, myOtherFunction2);
function myOtherFunction1(inputParam) {
alert('myOtherFunction1: ' + inputParam);
}
function myOtherFunction2(inputParam) {
alert('myOtherFunction2: ' + inputParam);
}
Notez comment la fonction de rappel est passée et déclarée sans guillemets ni parenthèses .
- Si vous utilisez
doThisFirst(1, 'myOtherFunction1');
il échouera.
- Si vous utilisez
doThisFirst(1, myOtherFunction3());
(je sais qu'il n'y a pas d'entrée de paramètre dans ce cas) alors il appellera myOtherFunction3
premièrement donc vous obtenez des effets secondaires involontaires.