Eksportimi i objektit në modulet përmes mbylljeve në JavaScript
Le të supozojmë se kemi modulin e mëposhtëm:
;(function() {
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
})();
Le të supozojmë se duam të eksportojmë të tre funksionet jashtë. Në këtë rast, për të mos krijuar jashtë modulit emra të tepërt të funksioneve, është më mirë të shkruhen të gjitha funksionet në një objekt dhe të kryhet eksportimi i këtij objekti:
;(function() {
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
window.module = {func1: func1, func2: func2, func3: func3};
})();
Meqenëse emrat e çelësave dhe variablave përputhen, objekti me funksione mund të thjeshtohet:
;(function() {
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
window.module = {func1, func2, func3};
})();
Mund të shkojmë edhe në një rrugë tjetër. Do t'i regjistrojmë funksionet në objekt menjëherë gjatë përshkrimit të funksionit, kështu:
;(function() {
let module = {};
module.func1 = function() {
alert('module function');
}
module.func2 = function() {
alert('module function');
}
module.func3 = function() {
alert('module function');
}
window.module = module;
})();
Është dhënë moduli i mëposhtëm:
;(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');
}
})();
Eksportoni jashtë objektin me pesë funksionet e para dhe dy variablat e parë.