Question

Définition du rappel:

Fonction définie comme propriété dans un composant. Et est généralement appelé lorsqu'un événement se produit sur le composant.

Par exemple:

Si vous souhaitez afficher une boîte de dialogue indiquant "J'ai cliqué sur" lorsque l'utilisateur clique sur le composant composantB , vous écrirez une méthode stockée sous forme de variable. qui fait ceci:

var mouseDownCallbackFunction = function() {
    alert("I was clicked!");
};

Ensuite , vous définissez cette fonction dans le composant comme suit ...

// Set the Component to display the dialog when the 
// user presses the mouse down on it.
componentB.setMouseDownCallback(mouseDownCallbackFunction);

De plus, mouseDownCallbackFunction afficherait "J'ai cliqué sur" "dans une zone d'alerte lorsque l'utilisateur a cliqué sur le composant.

Était-ce utile?

La solution

En C, ce serait un rappel valide. Cependant, je ne suis pas si familier avec JavaScript pour dire si c'est le cas ou pas parce que je ne suis pas sûr de savoir comment les variables sont traitées en fonction de leurs emplacements de mémoire.

En C / C ++, vous pouvez déclarer un pointeur vide:

void aFunction()
{
     do stuff
}

int main()
{
    void* myCallback = &aFunction; 
    componentB.setMouseDownCallback(myCallback);
}

Cela fonctionnerait.

Cependant, malgré mon manque de connaissances en JavaScript, je sais que

componentB.setMouseDownCallback(function() {
        alert("I was clicked!");
        };
);

est également valide.

MODIFIER a ajouté un non à la deuxième phrase: "Je ne suis pas si familier",

.

Autres conseils

Oui, cela décrit la définition exacte d'un rappel ...

En JavaScript, techniquement, il s'agit d'une fermeture , car il peut être lié à toutes les variables référencées dans la portée.

Mais les fermetures ne sont qu'une meilleure forme de rappel, alors oui, c'est un rappel. Un rappel en C est plus primitif, fournissant uniquement une référence de pointeur à une fonction typée, sans liaison à aucun contexte.

Oui, un rappel est une fonction définie à un niveau supérieur à celui auquel elle est appelée. Votre code client crée la fonction, puis la passe en tant que paramètre à composantB , afin que composantB puisse l'appeler ultérieurement.

oui, c'est un rappel.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top