Domanda

Definizione di callback:

Una funzione impostata come proprietà all'interno di un componente. E di solito viene chiamato quando si verifica un evento sul Componente.

Ad esempio:

Se desideri visualizzare una finestra di dialogo che dice " Mi è stato fatto clic " quando l'utente fa clic sul componente componenteB , dovresti scrivere un metodo memorizzato come variabile che fa questo:

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

Avanti , imposteresti questa funzione all'interno del componente in questo modo ...

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

E questo causerebbe mouseDownCallbackFunction per visualizzare " Mi è stato fatto clic " in una casella di avviso quando si è fatto clic sul componente.

È stato utile?

Soluzione

In C, sarebbe un callback valido. Tuttavia non sono così familiare con JavaScript da dire se lo è o no perché non sono sicuro di come le variabili vengono trattate rispetto alle loro posizioni di memoria.

In C / C ++ potresti dichiarare un puntatore vuoto:

void aFunction()
{
     do stuff
}

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

Funzionerebbe.

Tuttavia, nonostante la mia mancanza di conoscenza di JavaScript, lo so

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

è valido anche.

MODIFICA ha aggiunto una non alla seconda frase: "Non sono così familiare"

Altri suggerimenti

Sì, questo descrive la definizione esatta di un callback ...

In JavaScript, tecnicamente, si tratta di una chiusura , dal momento che può legarsi a qualsiasi variabile nell'ambito cui si fa riferimento.

Ma le chiusure sono solo una migliore forma di callback, quindi sì, questo è un callback. Un callback in C è più primitivo, fornendo solo un riferimento puntatore a una funzione digitata, senza legarsi a nessun contesto.

Sì, un callback è una funzione definita a un livello superiore a quello che viene chiamata. Il codice client crea la funzione, quindi la passa come parametro a componentB , affinché componentB possa chiamarla in seguito.

sì, è un callback.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top