¿Debo usar IIFE o Windows Onload para inicializar?

Los siguientes dos fragmentos de código funcionaron:

Usando IIFE en el archivo js:

(function initialize() {
  txtInput = document.getElementById('txtInput');
  txtResult = document.getElementById('txtResult');

  txtInput.value = "0";
  txtResult.value = "0";

}());

Llamando initialize () en el evento de carga de la ventana en el archivo html:

window.addEventListener('load', initialize, false);

Es uno un mejor enfoque que otro; en términos de rendimiento o de otra manera? Tal como está ahora, me estoy inclinando más hacia la adición de oyentes de eventos al objeto de ventana, porque es más legible.

Respuestas a la pregunta(3)

Su respuesta a la pregunta