Objekti eksportimine sulundite kaudu JavaScripti moodulites
Oletame, et meil on järgmine moodul:
;(function() {
function func1() {
alert('mooduli funktsioon');
}
function func2() {
alert('mooduli funktsioon');
}
function func3() {
alert('mooduli funktsioon');
}
})();
Oletame, et tahame eksportida kõik kolm funktsiooni väljapoole. Sel juhul, et mitte tekitada mooduli väljapoole liigseid funktsioonide nimesid, on parem kirjutada kõik funktsioonid ühte objekti ja teha selle objekti eksport:
;(function() {
function func1() {
alert('mooduli funktsioon');
}
function func2() {
alert('mooduli funktsioon');
}
function func3() {
alert('mooduli funktsioon');
}
window.module = {func1: func1, func2: func2, func3: func3};
})();
Kuna võtmete ja muutujate nimed langevad kokku, saab funktsioonide objekti lihtsustada:
;(function() {
function func1() {
alert('mooduli funktsioon');
}
function func2() {
alert('mooduli funktsioon');
}
function func3() {
alert('mooduli funktsioon');
}
window.module = {func1, func2, func3};
})();
Võib minna ka teist teed. Kirjutame funktsioonid objekti kohe funktsiooni kirjeldamisel, niimoodi:
;(function() {
let module = {};
module.func1 = function() {
alert('mooduli funktsioon');
}
module.func2 = function() {
alert('mooduli funktsioon');
}
module.func3 = function() {
alert('mooduli funktsioon');
}
window.module = module;
})();
Antud on järgmine moodul:
;(function() {
let str1 = 'mooduli muutuja';
let str2 = 'mooduli muutuja';
let str3 = 'mooduli muutuja';
function func1() {
alert('mooduli funktsioon');
}
function func2() {
alert('mooduli funktsioon');
}
function func3() {
alert('mooduli funktsioon');
}
function func4() {
alert('mooduli funktsioon');
}
function func5() {
alert('mooduli funktsioon');
}
})();
Eksportige väljapoole objekt, mis sisaldab esimest viit funktsiooni ja kahte esimest muutujat.