Concept de fonction de rappel: une fonction de rappel est une fonction appelée via un pointeur de fonction. Si vous passez le pointeur (adresse) de la fonction comme un argument à une autre fonction, lorsque ce pointeur est utilisé pour appeler la fonction à laquelle il pointe, nous disons que c'est une fonction de rappel.
Un rappel est une fonction qui est transmise comme un argument à une autre fonction et qui est exécutée une fois sa fonction parent terminée.
Raisons d'utiliser les fonctions de rappel: vous pouvez séparer l'appelant de la Callee. L'appelant ne se soucie pas de qui est l'appelant.
Considérez un exemple comme ceci:
Si le bas et le haut niveau d'un projet sont coordonnés par différents membres du personnel. Personnel inférieur, j'ai besoin de vous.
Le personnel sous-jacent a déclaré: Je vous fournirai des données et comment l'afficher et le traiter est votre entreprise. Données et vous serez vous-même.
La copie de code est la suivante:
// Les données représentent la source de données fournie par la couche sous-jacente, et Funcname représente la fonction d'appel de la couche supérieure
fonction (data, funcname) {
1.DATA appartient au cas 1 et est géré par la couche sous-jacente;
2.DATA appartient au cas 2. Il est traité par le niveau de haut niveau.
...
}
Je ne l'ai peut-être pas encore précisé, nous pouvons voir un exemple et tout comprendre tout de suite
La copie de code est la suivante:
// Si la source de données fournie est un entier, qui est le score d'un étudiant, lorsque Num <= 0, il est traité par la couche sous-jacente, et lorsque N> 0, il est traité par la couche supérieure.
// Copiez la fonction suivante et enregistrez-la sur 1.js
fonction f (num, rappel) {
if (num <0) {
alert ("Appelez la fonction de bas niveau à traiter!");
alert ("le score ne peut pas être négatif, erreur d'entrée!");
} else if (num == 0) {
alert ("Appelez la fonction de bas niveau à traiter!");
alert ("L'étudiant n'a peut-être pas passé l'examen!");
}autre{
alert ("Appeler le traitement de la fonction de haut niveau!");
callback ();
}
}
La copie de code est la suivante:
// Enregistrez le fichier test.html suivant dans le même répertoire que 1.js:
<!
"http://www.w3.org/tr/html4/loose.dtd">
<html>
<adal>
<meta http-equiv = "content-type" content = "text / html; charset = gb2312">
<script src = "1.js" type = "text / javascript"> </ script>
<Title> UNT intitulé Document </Title>
<script type = "text / javascript">
fonction test () {
var p = document.getElementById ("pp");
pp.innerText = "";
var num = document.getElementById ("score"). valeur;
f (num, fonction () {// fonction de traitement de haut niveau anonyme
if (num <60) alert ("a échoué!");
else if (num <= 90) alert ("La génération est excellente!");
else alert ("Excellents résultats pour cette génération!");
pp.innerText = "par depuis 1978 QQ558064!"
}
</cript>
</ head>
<body>
<p>
Exemple de fonction de rappel: lorsque le score de l'élève est le score <= 0, il est traité par la couche sous-jacente;
</p>
Veuillez saisir les scores des étudiants <Type d'entrée = "Text" id = "score">
<entrée type = "bouton" onclick = "test ()" value = "Regardez le résultat">
<p id = "pp"> </p>
</docy>
</html>
Exécutez ce fichier et vous pouvez voir l'effet