Pregunta

Definición de devolución de llamada:

Una función que se establece como una propiedad dentro de un componente. Y generalmente se llama cuando ocurre algún evento en el Componente.

Por ejemplo:

Si desea mostrar un cuadro de diálogo que dice " Me hicieron clic en " cuando el usuario hace clic en el Componente componentB , escribiría un método almacenado como variable que hace esto:

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

Siguiente , deberías configurar esta función dentro del componente así ...

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

Y esto causaría que mouseDownCallbackFunction muestre " Me hicieron clic en " en un cuadro de alerta cuando se hizo clic en el componente.

¿Fue útil?

Solución

En C, eso sería una devolución de llamada válida. Sin embargo, no estoy tan familiarizado con JavaScript para decir si lo está o no porque no estoy seguro de cómo se tratan las variables con respecto a sus ubicaciones de memoria.

En C / C ++ puede declarar un puntero de nulo:

void aFunction()
{
     do stuff
}

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

Funcionaría.

Sin embargo, a pesar de mi falta de conocimiento de JavaScript, sí lo sé

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

también es válido.

EDIT agregó una no a la segunda oración: " No soy tan familiar "

Otros consejos

Sí, esto describe la definición exacta de una devolución de llamada ...

En JavaScript, técnicamente, eso es un cierre , ya que puede vincularse a cualquier variable en el alcance al que se haga referencia.

Pero los cierres son solo una mejor forma de devolución de llamada, así que sí, es una devolución de llamada. Una devolución de llamada en C es más primitiva, ya que proporciona solo una referencia de puntero a una función escrita, sin vincularse a ningún contexto.

Sí, una devolución de llamada es una función que se define en un nivel superior al que se llama. Su código de cliente crea la función, luego la pasa como un parámetro a componentB , para que componentB lo llame más tarde.

sí, eso es una devolución de llamada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top