Eksport obiektu w modułach poprzez domknięcia w JavaScript
Załóżmy, że mamy następujący moduł:
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
})();
Załóżmy, że chcemy wyeksportować na zewnątrz wszystkie trzy funkcje. W tym przypadku, aby nie tworzyć na zewnątrz modułu zbędnych nazw funkcji, lepiej zapisać wszystkie funkcje w jednym obiekcie i wykonać eksport tego obiektu:
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
window.module = {func1: func1, func2: func2, func3: func3};
})();
Ponieważ nazwy kluczy i zmiennych są takie same, obiekt z funkcjami można uprościć:
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
window.module = {func1, func2, func3};
})();
Można pójść też inną drogą. Będziemy zapisywać funkcje w obiekcie od razu przy opisie funkcji, w ten sposób:
;(function() {
let module = {};
module.func1 = function() {
alert('module funcion');
}
module.func2 = function() {
alert('module funcion');
}
module.func3 = function() {
alert('module funcion');
}
window.module = module;
})();
Dany jest następujący moduł:
;(function() {
let str1 = 'module variable';
let str2 = 'module variable';
let str3 = 'module variable';
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
function func4() {
alert('module funcion');
}
function func5() {
alert('module funcion');
}
})();
Wyeksportuj na zewnątrz obiekt z pierwszymi pięcioma funkcjami i pierwszymi dwiema zmiennymi.