Diferencia entre asignar un controlador de eventos a un método con y sin paréntesis
Suponiendo que tiene lo siguiente:
function doStuff() { //code }
¿Cuál es la diferencia entre las 2 declaraciones?
window.onload = doStuff;
window.onload = doStuff();
Ambas declaraciones llamaron inmediatamente al método, pero si usé la primera declaración, podría tratar a la carga como un puntero de función a "doStuff" y volver a llamar al método usando:
onload();
¿Es esta la única diferencia y, en general, todo esto es un comportamiento garantizado para los manejadores de eventos?