Frage

Definition von Rückruf:

Eine Funktion, die als Eigenschaft innerhalb einer Komponente festgelegt ist. Und wird in der Regel aufgerufen, wenn ein Ereignis auf der Komponente auftritt.

Beispiel:

Wenn Sie einen Dialog anzuzeigen, der liest „Ich wurde angeklickt“ , wenn der Benutzer klickt auf die Komponente componentB , würden Sie eine Methode als Variable gespeichert schreiben die tut dies:

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

Weiter , können Sie diese Funktion in der Komponente setzen würden, wie so ...

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

Und dies würde dazu führen, mouseDownCallbackFunction angezeigt werden "Ich wurde angeklickt" in einer Warnmeldung, wenn die Komponente geklickt wurde.

War es hilfreich?

Lösung

In C, das wäre ein gültiger Callback sein. Aber ich bin nicht so vertraut mit JavaScript zu sagen, ob es ist oder nicht, weil ich nicht sicher bin, wie Variablen in Bezug auf ihre Speicherstellen behandelt werden.

In C / C ++ Sie einen void-Zeiger erklären könnten:

void aFunction()
{
     do stuff
}

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

funktionieren würde.

Doch trotz meines Mangels an JavaScript-Kenntnisse, ich weiß, dass

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

ist auch gültig.

Bearbeiten hinzugefügt eine nicht auf den zweiten Satz: "Ich bin nicht so vertraut"

Andere Tipps

Ja, das beschreibt die genaue Definition eines Rückrufes ...

In JavaScript, technisch gesehen, das ist ein Schließung , da es sich auf alle Variablen im Umfang binden können, die referenziert werden.

Aber Verschlüsse sind nur eine bessere Form des Rückrufs, so ja, das ist ein Rückruf. Ein Rückruf in C ist primitiver, in eine typisierte Funktion nur eine Zeigerreferenz bereitstellt, ohne zu jedem Kontext zu binden.

Ja, ein Rückruf ist eine Funktion, die auf einer höheren Ebene definiert ist, als es genannt wird. Ihr Client-Code erstellt die Funktion, dann übergibt sie als Parameter an componentB, um componentB es zu nennen später.

Ja, das ist ein Rückruf.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top