Export objektu v moduloch prostredníctvom uzavretí v JavaScripte
Majme nasledujúci modul:
;(function() {
function func1() {
alert('funkcia modulu');
}
function func2() {
alert('funkcia modulu');
}
function func3() {
alert('funkcia modulu');
}
})();
Predpokladajme, že chceme exportovať von všetky tri funkcie. V tomto prípade, aby sme nevytvárali mimo modulu nadbytočné názvy funkcií, je lepšie zapísať všetky funkcie do jedného objektu a vykonať export tohto objektu:
;(function() {
function func1() {
alert('funkcia modulu');
}
function func2() {
alert('funkcia modulu');
}
function func3() {
alert('funkcia modulu');
}
window.module = {func1: func1, func2: func2, func3: func3};
})();
Keďže názvy kľúčov a premenných sa zhodujú, objekt s funkciami môžeme zjednodušiť:
;(function() {
function func1() {
alert('funkcia modulu');
}
function func2() {
alert('funkcia modulu');
}
function func3() {
alert('funkcia modulu');
}
window.module = {func1, func2, func3};
})();
Môžeme ísť aj inou cestou. Budeme zapisovať funkcie do objektu priamo pri popise funkcie, takto:
;(function() {
let module = {};
module.func1 = function() {
alert('funkcia modulu');
}
module.func2 = function() {
alert('funkcia modulu');
}
module.func3 = function() {
alert('funkcia modulu');
}
window.module = module;
})();
Daný je nasledujúci modul:
;(function() {
let str1 = 'premenná modulu';
let str2 = 'premenná modulu';
let str3 = 'premenná modulu';
function func1() {
alert('funkcia modulu');
}
function func2() {
alert('funkcia modulu');
}
function func3() {
alert('funkcia modulu');
}
function func4() {
alert('funkcia modulu');
}
function func5() {
alert('funkcia modulu');
}
})();
Exportujte von objekt s prvými piatimi funkciami a prvými dvoma premennými.