Middle
Explique qué es el patrón de módulos en JavaScript y dónde se aplica.
sobes.tech AI
Respuesta de la IA
El patrón de módulos permite encapsular el código definiendo una interfaz pública y privada. Esto se logra creando un ámbito privado mediante expresiones de función inmediatamente invocadas (IIFE) o la sintaxis de ES Modules.
Se aplica para:
- Encapsulación: Oculta la implementación interna, proporcionando solo la API pública necesaria.
- Prevención de contaminación del ámbito global: Las variables y funciones permanecen locales dentro del módulo.
- Organización del código: Divide la aplicación en bloques lógicos, facilitando la comprensión y el mantenimiento.
- Reutilización del código: Los módulos pueden ser importados y utilizados en diferentes partes de la aplicación.
Ejemplo con uso de IIFE:
// Crear un ámbito privado
const myModule = (() => {
// Variable privada
let privateVariable = '¡Soy privado!';
// Función privada
const privateMethod = () => {
console.log(privateVariable);
};
// Función pública
const publicMethod = () => {
console.log('Esta es una función pública.');
privateMethod(); // Acceso a la función privada
};
// Solo devolver los miembros públicos
return {
publicMethod: publicMethod
};
})();
// Uso de la interfaz pública
myModule.publicMethod(); // Mostrará "Esta es una función pública." y "¡Soy privado!"
// myModule.privateVariable; // Error - no accesible
// myModule.privateMethod(); // Error - no accesible
Ejemplo con uso de ES Modules:
// module.js
// Variable privada (no exportada)
const privateVariable = '¡Soy privado en ES Module!';
// Función privada (no exportada)
const privateMethod = () => {
console.log(privateVariable);
};
// Función pública (exportada)
export const publicMethod = () => {
console.log('Esta es una función pública en ES Module.');
privateMethod();
};
// main.js
import { publicMethod } from './module.js';
publicMethod(); // Mostrará "Esta es una función pública en ES Module." y "¡Soy privado en ES Module!"