¿Qué son cierres y devoluciones de llamada en JavaScript? Todavía tengo que encontrar una buena explicación de cualquiera.¿Qué son cierres y devoluciones de llamada?
Respuesta
cierres ya han sido bien manejados en Stackoverflow aquí es sólo una selección: -
How does a javascript closure work?
What exactly does “closure” refer to in JavaScript?
can you say this is a right example of Javascript Closure.. Where the places we need to consider avoiding the closures??
JavaScript scope and closure
Javascript Closures and ‘this’ context
JavaScript - How do I learn about “closures” usage?
Las devoluciones de llamada son un concepto más simple. Una devolución de llamada es básicamente cuando una función acepta otra función como parámetro. En algún punto durante la ejecución, la función llamada ejecutará la función pasada como parámetro, esta es una devolución de llamada . Con bastante frecuencia, la devolución de llamada ocurre realmente como un evento asincrónico, en cuyo caso la función llamada puede regresar sin haber ejecutado la devolución de llamada, lo que puede ocurrir más tarde. Aquí es un ejemplo común (basado en navegador): -
function fn() { alert("Hello, World"); }
window.setTimeout(fn, 5000);
Aquí la función fn
se pasa como una devolución de llamada a la función setTimeout
. El tiempo de espera establecido regresa inmediatamente; sin embargo, 5 segundos después, se ejecuta la función pasada como una devolución de llamada .
Los cierres y las devoluciones de llamada
Muy a menudo la razón por la que los cierres se crean (ya sea de paso, accidental o deliberadamente) es la necesidad de crear una devolución de llamada. Por ejemplo: -
function AlertThisLater(message, timeout)
{
function fn() { alert(message); }
window.setTimeout(fn, timeout);
}
AlertThisLater("Hello, World!", 5000);
(Por favor, lea algunos de los mensajes vinculados a captar cierres)
Se crea un cierre que contiene en parte el parámetro message
, fn
se ejecuta bastante tiempo después de la llamada a AlertThisLater
tiene devuelto, aún fn
todavía tiene acceso al contenido original de message
.
¿Las devoluciones de llamada se usan con más frecuencia con setTimeout? –
setTimeout es un uso común pero igualmente común sería 'onreadystatechange' en el objeto' XmlHttpRequest'. También verá un uso extensivo de devoluciones de llamadas en código que usa marcos de JavaScript como JQuery. En muchos de estos casos, la devolución de llamada es justo donde proporcionaría un poco de lógica para personalizar un proceso grande pero por lo demás estándar. También se utilizan con frecuencia devoluciones de llamada para ejecutar la misma función sobre un conjunto de objetos. – AnthonyWJones
- 1. Cierre y devoluciones de llamada
- 2. ¿Las devoluciones de llamada son siempre asincrónicas?
- 3. Delegados y devoluciones de llamada
- 4. devoluciones de llamada genérica
- 5. Diseñar devoluciones de llamada
- 6. Saltarse las devoluciones de llamada y validación
- 7. Cierres: ¿por qué son tan útiles?
- 8. Cierres en PHP ... ¿qué son, exactamente, y cuándo necesitarías usarlos?
- 9. Cython: implementar devoluciones de llamada
- 10. Manejo de devoluciones de llamada
- 11. Rieles: devoluciones de llamada de módulo
- 12. Rails: around_ * devoluciones de llamada
- 13. Esperar múltiples devoluciones de llamada
- 14. Son cierres en javascript recompiladas
- 15. retorcido diferido/devoluciones de llamada y ejecución asincrónica
- 16. GCD y devoluciones de llamada: problema de concurrencia
- 17. devoluciones de llamada de mockito y obteniendo valores de argumento
- 18. ¿Los delegados y las devoluciones de llamada son iguales o similares?
- 19. Punteros de función y devoluciones de llamada en C
- 20. mongid incrustados devoluciones de llamada de documentos
- 21. HTML5 <video> devoluciones de llamada?
- 22. Android, pausar y reanudar el manejador de devoluciones de llamada
- 23. Diferencia entre controladores de eventos y devoluciones de llamada
- 24. javascript: prototipos con devoluciones de llamada y 'esto'
- 25. devoluciones de llamada de Ajax en rails3
- 26. Creación de devoluciones de llamada en XS
- 27. Android: devoluciones de llamada con componente WebView?
- 28. WSDualHttpBinding para devoluciones de llamada dúplex
- 29. C++ 11 devoluciones de llamada con estilo?
- 30. ObjC blocks & openssl C devoluciones de llamada
http://stackoverflow.com/questions/1095707/what-is-the-exact-definition-of-a-closure –
¿Has probado esto en google: "closing javascript site: stackoverflow.com" (Don ' molestar con el cuadro de búsqueda en SO en sí es una basura) Hay un montón de lugares donde se describen los cierres – AnthonyWJones
http://stackoverflow.com/questions/111102/how-does-a-javascript-closure-work – Upperstage