Según lo que he reunido, el primero asigna el valor real de lo que sea que la sentencia return de las funciones sea a la propiedad onload, mientras que la segunda asigna la función real y se ejecutará después de que se haya cargado la ventana. Pero todavía no estoy seguro. Gracias a todos los que puedan dar más detalles.¿Cuál es la diferencia entre window.onload = init(); y window.onload = init;
Respuesta
window.onload = init();
asigna el proceso de carga a lo que es regresaron de la función init cuando es ejecutado. init
se ejecutará inmediatamente , (como, ahora, no cuando la ventana se realiza la carga) y el resultado se asigna a window.onload
. Es poco probable que nunca quiere esto, pero la siguiente sería válida:
function init() {
var world = "World!";
return function() {
alert("Hello " + world);
};
}
window.onload = init();
window.onload = init;
asigna el proceso de carga a la función init. Cuando el evento de carga se activa, se ejecutará la función init.
function init() {
var world = "World!";
alert("Hello " + world);
}
window.onload = init;
¿Algún ejemplo sobre cuándo usar qué? –
Eso tiene sentido, pero supongo que mi pregunta sería, ¿cuál es la diferencia entre la declaración sin el() y la que no? Porque ambos solo se ejecutan cuando la ventana se termina de cargar. – Andy
@Andy - hay una diferencia significativa - He elaborado mi respuesta –
window.onload = foo;
asigna el valor de foo a la propiedad onload del objeto ventana.
window.onload = foo();
asigna el valor devuelto llamando foo() a la propiedad onload del objeto ventana. Si ese valor proviene de una declaración de devolución o no depende de foo, pero tendría sentido devolver una función (que requiere una declaración de devolución).
Cuando se produce el evento de carga, si el valor de window.onload es una referencia de función, el controlador de eventos de Windows lo llamará.
buenas respuestas, una cosa más que añadir:
tiempos de ejecución de navegador ignoran no-objeto (string, number, true, false, undefined, null, NaN
) valores establecidos para los eventos DOM como window.onload. Por lo tanto, si escribe window.onload
= 10 o cualquiera de los tipos de valores mencionados anteriormente (incluido el híbrido string
), el evento seguirá siendo null
.
Lo que es más divertido que los controladores de eventos obtengan cualquier valor de tipo de objeto, incluso window.onload = new Date
es un código bastante válido que solicitará la fecha actual cuando inicie sesión en window.onload
. :) Pero seguro que no sucederá nada cuando se active el evento window.load
.
Por lo tanto, siempre asigne una función a cualquier evento en JavaScript.
- 1. Cuál es la diferencia entre __construct() e init()
- 2. ¿Cuál es la diferencia entre ASP.NET AJAX pageLoad() y JavaScript window.onload?
- 3. window.onload vs. body.onload vs. document.onready
- 4. JavaScript "window.onload" - ¿es realmente necesaria la "ventana"?
- 5. iOS: ¿Cuál es la diferencia entre -init y -viewLoad de ViewController?
- 6. ¿Cuál es la diferencia entre [Clase nueva] y [[Clase alloc] init] en iOS?
- 7. Java: ¿Cuál es la diferencia entre <init> y <clinit>?
- 8. window.onload vs <body onload = "" />
- 9. window.onload contra document.ready jQuery
- 10. función window.onload problema
- 11. Añadir múltiples eventos window.onload
- 12. Práctica recomendada para usar window.onload
- 13. ¿Hay + = para window.onload en Javascript?
- 14. UIViewController (init y initWithNibName)
- 15. cuando se ha activado window.onload
- 16. evento JavaScript no window.onload desencadenó
- 17. referencia indefinida a `std :: ios_base :: Init :: Init() '
- 18. Ciclo de vida del applet: ¿cuál es la diferencia práctica entre init() y start(), y destroy() & stop()?
- 19. init y awakeFromNib
- 20. jQuery constructor y init
- 21. ¿Cuál es la diferencia entre clone y mkdir-> cd-> init-> remote-add-> pull?
- 22. impedir que se omita window.onload javascript
- 23. ¿Debo usar window.onload o script block?
- 24. si (auto = [súper init]) vs. if ((auto = [súper init]))
- 25. ViewController init?
- 26. ¿Cuál es la diferencia entre [NSNull null] y nil?
- 27. ¿Cuál es el uso del uso de init() en JavaScript?
- 28. ¿Cuál es el equivalente de Cloud-Init para Windows?
- 29. ¿Cuál es la diferencia entre {0} y ""?
- 30. Cuál es la diferencia entre = y: =
Sí, esa es exactamente la diferencia. –
UNA vez que dio la definición correcta, no sabemos realmente de qué no está seguro. ¿Cuidado para elaborar? –
Bueno, el libro que estoy leyendo dice que hay una diferencia clara, pero para mí logra exactamente lo mismo. La función se ejecuta después de que se carga la página, ¿cuál es el punto de usar cualquiera de las dos? – Andy