Funciones auto invocadas
Problema:
Función que se ejecuta en el momento de ser definidas (IIFE)
Una función se ejecuta cuando es llamada desde alguna parte de un script. Es lo habitual.
Pero ¿y si tenemos una función que deba ejecutarse una sola vez en el momento inicial de mi aplicación web?
Solución
Usar las IIFE: funciones de ejecución inmediata
Son funciones que se ejecutan en el momento que son definidas. El cuerpo se ejecuta y la función queda definida como cualqueir otra función.
El código genérico es:
(function(args){
código
})(args)
Observa que va encerrado entre paréntesis y que al final van los parámetros que se le pasan a la función, también entre paréntesis
Ejemplo
Esta función se ejecuta cuando se define y lleva como argumentos white y black
(function (bg, fg){
let st = documnet.body.style
st.background = bg;
st.color = fg;
})(white, blue);
En el momento en que se define se ejecuta y pone el color del fondo en white (blanco) y el texto en blue (azul)