Módulos mediante clausuras en JavaScript
El problema descrito anteriormente es característico de cualquier lenguaje de programación. Como solución, se utilizan los llamados módulos.
Un módulo es una construcción diseñada para que las variables y funciones de esta construcción solo sean visibles dentro de ella y no interfieran con nada externo.
En JavaScript existen varios tipos de módulos. Los módulos mediante clausuras más simples se crean usando una función invocada inmediatamente, de esta manera:
;(function() {
// aquí el código del módulo
})();
Las variables y funciones creadas en dicho módulo no serán visibles desde fuera de este módulo:
;(function() {
let str = 'variable del módulo';
function func() {
alert('función del módulo');
}
})();
// Aquí las variables y funciones del módulo no están disponibles:
alert(str);
alert(func);