¿Qué es la devolución de llamada?
La copia del código es la siguiente:
Una función de devolución de llamada es una función llamada a través de un puntero de función. Si pasa el puntero (dirección) de la función como un argumento a otra función, cuando este puntero se usa para llamar a la función a la que señala, decimos que esta es una función de devolución de llamada. La función de devolución de llamada no es llamada directamente por el implementador de la función, sino que otra parte llama cuando ocurre un evento o condición específico, y se utiliza para responder al evento o condición.
Esta explicación parece complicada, así que encontré una mejor explicación sobre Zhihu
La copia del código es la siguiente:
Usted va a una tienda para comprar cosas, y las cosas que desea no están en stock, por lo que deja su número de teléfono con el empleado. Después de unos días, la tienda tiene productos, y el empleado lo llamará, y luego va a la tienda para recoger los productos después de recibir la llamada. En este ejemplo, su número de teléfono se llama función de devolución de llamada y deja el teléfono al empleado, que se llama función de devolución de llamada de registro. La tienda más tarde tiene acciones, que se llama el evento que desencadena la asociación de devolución de llamada. El empleado lo llama, que se llama función de devolución de llamada, y cuando va a la tienda para recoger los productos, se llama evento de respuesta de respuesta. La respuesta está terminada.
En JavaScript:
La copia del código es la siguiente:
La función A se pasa como un argumento (referencia de función) en otra función B, y esta función B ejecuta la función A. Digamos que la función A se denomina función de devolución de llamada. Si no hay nombre (expresión de funciones), se llama una función de devolución de llamada anónima.
De hecho, significa pasar la función como un parámetro.
Vuelva de llamada de Javscript
Lanza todas las explicaciones complicadas anteriormente en la basura.
¿Qué es la devolución de llamada?
En jQuery, el método de escondite probablemente sea así
La copia del código es la siguiente:
$ (Selector). Cuerdad (velocidad, devolución de llamada)
Al usarlo,
La copia del código es la siguiente:
$ ('#elemento'). Hide (1000, function () {
// función de devolución de llamada
});
Solo necesitamos escribir una función simple en el interior
La copia del código es la siguiente:
$ ('#elemento'). Hide (1000, function () {
console.log ('escondite');
});
Hay un pequeño comentario en esto: la función de devolución de llamada se ejecuta después de que la animación actual se completa el 100%. Entonces podemos ver el fenómeno real. Cuando el elemento con el elemento ID está oculto, la escondite se emitirá en la consola.
Eso significa:
La devolución de llamada es en realidad, cuando se ejecuta una función, la función que ahora se ejecuta es la llamada función de devolución de llamada.
Función de devolución de llamada
En circunstancias normales, las funciones se ejecutan en orden, pero JavaScript es un lenguaje basado en eventos.
La copia del código es la siguiente:
función hello () {
console.log ('hola');
}
function world () {
console.log ('mundo');
}
Hola();
mundo();
Por lo tanto, en circunstancias normales, se ejecutarán en secuencia, pero cuando el evento mundial se ejecute durante mucho tiempo.
La copia del código es la siguiente:
función hello () {
setTimeOut (function () {
console.log ('hola');
}, 1000);
}
function world () {
console.log ('mundo');
}
Hola();
mundo();
Entonces este no es el caso en este momento. En este momento, World se emitirá y saltará, por lo que necesitamos devolución de llamada.
Instancia de devolución de llamada
Un ejemplo simple es el siguiente
La copia del código es la siguiente:
función add_callback (p1, p2, devolución de llamada) {
var my_number = p1 + p2;
devolución de llamada (my_number);
}
add_callback (5, 15, función (num) {
console.log ("llamar" + num);
});
En el ejemplo, tenemos una función de add_callback que recibe tres parámetros: los dos primeros son dos parámetros a agregar, y el tercero es la función de devolución de llamada. Cuando se ejecuta la función, se devuelve el resultado de adición y se emite 'llamada 20' en la consola.