Exportul variabilelor și funcțiilor în module prin închideri în JavaScript
Uneori este necesar ca unele variabile și funcții ale modulului să fie accesibile din exterior. Să vedem cum se face acest lucru. Să presupunem că avem următorul modul:
;(function() {
let str = 'variabilă a modulului';
function func() {
alert('funcția modulului');
}
})();
Să exportăm funcția noastră func.
Pentru aceasta, o vom scrie într-o proprietate a obiectului
încorporat în browser window:
;(function() {
let str = 'variabilă a modulului';
function func() {
alert('funcția modulului');
}
window.func = func;
})();
Acum putem apela funcția noastră din exteriorul modulului:
;(function() {
let str = 'variabilă a modulului';
function func() {
alert('funcția modulului');
}
window.func = func;
})();
window.func(); // va afișa 'funcția modulului'
În acest caz, nu este obligatoriu să apelăm funcția
ca o proprietate a obiectului window:
;(function() {
let str = 'variabilă a modulului';
function func() {
alert('funcția modulului');
}
window.func = func;
})();
func(); // va afișa 'funcția modulului'
Este dat următorul modul:
;(function() {
let str1 = 'variabilă a modulului';
let str2 = 'variabilă a modulului';
let str3 = 'variabilă a modulului';
function func1() {
alert('funcția modulului');
}
function func2() {
alert('funcția modulului');
}
function func3() {
alert('funcția modulului');
}
})();
Exportați una dintre variabile și două funcții la alegere în exterior.