Exportación de variables y funciones en módulos mediante closures en JavaScript
A veces es necesario que algunas variables y funciones del módulo estén disponibles desde el exterior. Veamos cómo se hace esto. Supongamos que tenemos el siguiente módulo:
;(function() {
let str = 'variable del módulo';
function func() {
alert('función del módulo');
}
})();
Exportemos nuestra función func.
Para ello, la asignaremos como propiedad del objeto
global window en el navegador:
;(function() {
let str = 'variable del módulo';
function func() {
alert('función del módulo');
}
window.func = func;
})();
Ahora podemos llamar a nuestra función desde fuera del módulo:
;(function() {
let str = 'variable del módulo';
function func() {
alert('función del módulo');
}
window.func = func;
})();
window.func(); // mostrará 'función del módulo'
Y no es necesario invocar la función
como una propiedad del objeto window:
;(function() {
let str = 'variable del módulo';
function func() {
alert('función del módulo');
}
window.func = func;
})();
func(); // mostrará 'función del módulo'
Se da el siguiente módulo:
;(function() {
let str1 = 'variable del módulo';
let str2 = 'variable del módulo';
let str3 = 'variable del módulo';
function func1() {
alert('función del módulo');
}
function func2() {
alert('función del módulo');
}
function func3() {
alert('función del módulo');
}
})();
Exporta una de las variables y dos funciones cualesquiera.