Експорт објекта у модулима помоћу затварања у JavaScript-у
Претпоставимо да имамо следећи модул:
;(function() {
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
})();
Претпоставимо да желимо да извеземо све три функције. У том случају, да не бисмо стварали сувишне називе функција ван модула, боље је све функције уписати у један објекат и извршити експорт тог објекта:
;(function() {
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
window.module = {func1: func1, func2: func2, func3: func3};
})();
Пошто се називи кључева и променљивих поклапају, објекат са функцијама се може поједноставити:
;(function() {
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
window.module = {func1, func2, func3};
})();
Можемо ићи и другим путем. Функције ћемо уписати у објекат одмах приликом дефинисања функције, овако:
;(function() {
let module = {};
module.func1 = function() {
alert('module function');
}
module.func2 = function() {
alert('module function');
}
module.func3 = function() {
alert('module function');
}
window.module = module;
})();
Дат је следећи модул:
;(function() {
let str1 = 'module variable';
let str2 = 'module variable';
let str3 = 'module variable';
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
function func4() {
alert('module function');
}
function func5() {
alert('module function');
}
})();
Извезете објекат са првих пет функција и прве две променљиве.