Ejecuta funciones inmediatamente después de definirlas para encapsular código dentro de un ámbito distinto al global.
Las Expresiones de Función Ejecutadas Inmediatamente (IIFE, por sus siglas en inglés) son un patrón en JavaScript que permite definir y ejecutar funciones al instante. Un ejemplo:
(function() { console.log("Hola desde una IIFE");})();
Este pequeño truco puede parecer innecesario al principio, pero tiene una explicación interesantes.
En JavaScript, las variables definidas en el ámbito global pueden ser sobrescritas accidentalmente, lo que puede causar problemas en aplicaciones grandes. Las IIFE ayudan a:
Una IIFE es una función anónima envuelta entre paréntesis y ejecutada inmediatamente:
(function() { // Inmmediately Invoked Function Expression (IIFE) console.log("IIFE en JavaScript");})();
Otra forma válida es con una arrow function:
(() => { console.log("IIFE con arrow function");})();
Si la función necesita argumentos, se pueden pasar de esta manera:
(function(nombre) { console.log("Hola, " + nombre);})("Marco");
También funciona con arrow functions:
((nombre) => { console.log(`Hola, ${nombre}`);})("Michael");
Las IIFE también pueden ser asíncronas, lo que permite usar await
dentro de ellas sin necesidad de definir una función separada:
(async () => { const respuesta = await fetch("https://jsonplaceholder.typicode.com/todos/1"); const datos = await respuesta.json(); console.log(datos);})();
Las IIFE en JavaScript han sido una herramienta clave para evitar la contaminación del ámbito global y organizar código de manera estructurada. Aunque su uso ha disminuido con la evolución del lenguaje, siguen siendo una opción válida en escenarios específicos. Si alguna vez necesitas ejecutar una función de inmediato para protegerte del ámbito global puedes usar este recurso.