Callback : en quoi consistent les fonctions de rappel ?
JavaScript est l’un des langages les plus utilisés pour la création de pages Web. On se sert des capacités de ce langage de script pour concevoir des pages de manière interactive et pour pouvoir réagir aux entrées. On se sert pour cela de variables, d’objets et de fonctions, qui peuvent tous accéder les uns aux autres et donnent toujours les mêmes résultats, même avec des navigateurs différents. Derrière la plupart des boutons ou l’affichage d’un contenu à un moment donné se trouve une fonction dite « callback function » (ou fonction de rappel).
Les fonctions de ce type ne sont cependant pas un atout exclusif de JavaScript. D’autres langages de programmation bien connus tels que C, Java, PHP ou Python s’appuient également sur les callbacks pour transmettre de manière simple certains paramètres de l’utilisateur.
- Domaine .eu ou .fr + éditeur de site gratuit pendant 6 mois
- 1 certificat SSL Wildcard par contrat
- Boîte email de 2 Go
Qu’est-ce qu’un callback ?
Les fonctions se servent toujours de paramètres auxquels elles ont accès. On parle de fonction de rappel quand on passe une fonction en paramètre d’une autre fonction. Ces callback functions sont très souvent utilisées dans des bibliothèques et des frameworks tels que les applications JavaScript jQuery, Angular ou node.js. Elles sont utiles pour rendre les fonctions extensibles, pour qu’elles puissent par la suite être appelées sur certains événements ou circonstances.
Comment fonctionne un callback ?
Une fonction de rappel a toujours un certain effet, qui est associé à certaines circonstances. Par conséquent, les callback functions ne sont appelées que si une action clairement définie a été entreprise. Un bon exemple de fonction de rappel est les gestionnaires d’événements, qui sont utilisés dans les éléments HTML tels que les boutons, par exemple. Dans ce cas, un événement peut être un clic de souris, qui provoque l’exécution de la fonction de rappel. C’est le callback lui-même qui se chargera d’une éventuelle redirection vers une autre page. Un autre scénario possible est le passage d’une valeur dans un formulaire que l’on remplit.
La principale différence entre une fonction normale et une fonction de rappel peut donc être résumée comme suit : alors qu’une fonction normale est appelée directement, la fonction de rappel est simplement définie au départ et n’est appelée et exécutée que lorsqu’un certain événement se produit. Comme déjà mentionné, les callback functions sont employées dans différents langages de programmation. Bien que la syntaxe et la structure des méthodes diffèrent, le principe du callback reste le même dans tous les langages.
Fonctions callback en JavaScript
Les fonctions de rappel sont largement utilisées en programmation JavaScript. Il peut s’agir d’une fonction qui est appelée lorsqu’on clique sur un bouton, ou d’un contenu qui est temporisé avec une fonction setTimeout().
Un exemple simple de callback en JavaScript est un simple bouton :
document.getElementById("Button1").addEventListener("click", function() {
console.log("Clic Bouton");
}, false);
Dans cet exemple, un EventListener a été utilisé comme callback, qui est déclenché par un certain événement dans le cas présent, le clic sur le bouton ayant l’ID "Button1". Dès que le bouton est cliqué et que les conditions pour la callback function sont remplies, la fonction est exécutée et le message "Clic Bouton" est affiché sur la console. Pour assurer la compatibilité descendante avec les anciens navigateurs, le paramètre "false" a également été utilisé dans l’exemple donné.
Fonctions callback en PHP
En PHP, les callback functions sont appelées de la même manière qu’en JavaScript. Cependant, dans ce langage de script, les fonctions de rappel peuvent également être des méthodes d’un objet disposant de méthodes de classe statiques.
Voici un exemple classique de fonction callback en PHP :
function my_callback_function() {
echo Bonjour le monde !’;
}
L’appel de cette fonction produit la chaîne de caractères "Bonjour le monde !". Pour appeler le callback en tant que méthode, procédez comme suit :
class MyClass {
static function myCallbackMethod() {
echo ‘Bonjour le monde !’;
}
}
En PHP, les callbacks sont un moyen répandu pour permettre aux fonctions de communiquer entre elles. Ils sont souvent utilisés pour mettre en œuvre proprement des plug-ins ou des modules et pour assurer leur bon fonctionnement.
Fonctions callback en Python
En raison de sa syntaxe simple, Python est l’un des langages de programmation les plus populaires. Grâce à son utilisation polyvalente tant au niveau logiciel que matériel, ce langage constitue un bon premier pas si vous souhaitez apprendre la programmation. C’est un langage particulièrement apprécié et recherché dans les domaines des sciences des données et de l’apprentissage machine (machine learning), pour lesquels il offre de nombreux avantages par rapport à d’autres langages.
En Python, les callbacks sont surtout utilisés pour assigner différents événements aux éléments de l’interface utilisateur. Dans l’exemple suivant, deux fonctions sont définies, le callback "get_square" et l’appel "caller". Le callback est ensuite appelé :
>>> def get_square(val):
return val ** 2
>>> def caller(func, val):
return func(val)
>>> caller(get_square, 5)
La syntaxe de la fonction de rappel est très simple, semblable à celle de JavaScript et de PHP.
Fonctions callback en Java
En Java, il est assez inhabituel d’exécuter une callback function, mais il est possible de le faire, en ayant recours à la capacité de réflexion, par exemple. Celle-ci permet de représenter des méthodes et des fonctions sous forme d’objets. La réflexion est donc plus une fonction de bibliothèque qu’un callback.
Le principe SAX fonctionne également avec Java, de manière similaire à la callback function. Dans ce cas, un fichier XML est lu par l’analyseur SAX et une méthode de callback spécifique est appelée en fonction de l’événement entrant cela inclut les méthodes startDocument() et startElement().
Fonctions callback en C
Dans le langage de programmation C, on peut intégrer les fonctions de rappel de manière similaire à JavaScript. Ce langage est souvent utilisé pour la programmation système et le développement d’applications. C’est un outil fondamental pour la programmation de noyaux de systèmes ou de systèmes d’exploitation. De nombreux langages de programmation tels que JavaScript, PHP, C++, Java ou même C# sont fortement inspirés de la syntaxe et des propriétés de C. Par conséquent, il y a aussi beaucoup de recoupements dans la syntaxe et les méthodes des différentes langues.
Voici un exemple de callback function en C :
void A()
{
printf("Je suis une fonction A\n");
}
// La fonction callback
void B(void (*ptr)())
{
(*ptr) (); // Appel du callback à A
}
int main()
{
void (*ptr)() = &A;
// Appel de la fonction B
// La fonction A est passée en argument
B(ptr);
return 0;
}
Le résultat de ce code est donc : "Je suis une fonction A". Comme en JavaScript, une fonction de rappel est appelée chaque fois qu’un certain événement se produit. En C, ces fonctions sont utilisées pour créer diverses nouvelles bibliothèques pour des travaux de programmation ultérieurs, et pour émettre les signaux du noyau qui sont nécessaires à la gestion des événements asynchrones.
- Création et personnalisation de votre site assistées par IA
- 3x plus rapide : SSD, mise en cache et plus
- Analyses de sécurité quotidiennes, protection DDoS et disponibilité de 99,98 %