Objekta eksportēšana moduļos ar aizvērumiem JavaScript
Pieņemsim, ka mums ir šāds modulis:
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
})();
Pieņemsim, ka mēs vēlamies eksportēt ārā visas trīs funkcijas. Šajā gadījumā, lai neradītu ārpus moduļa liekus funkciju nosaukumus, labāk ierakstīt visas funkcijas vienā objektā un veikt šī objekta eksportēšanu:
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
window.module = {func1: func1, func2: func2, func3: func3};
})();
Tā kā atslēgu un mainīgo nosaukumi sakrīt, tad objektu ar funkcijām var vienkāršot:
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
window.module = {func1, func2, func3};
})();
Var iziet arī citu ceļu. Mēs ierakstīsim funkcijas objektā uzreiz, aprakstot funkciju, šeit šādi:
;(function() {
let module = {};
module.func1 = function() {
alert('module funcion');
}
module.func2 = function() {
alert('module funcion');
}
module.func3 = function() {
alert('module funcion');
}
window.module = module;
})();
Dots šāds modulis:
;(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');
}
})();
Eksportējiet ārā objektu ar pirmajām piecām funkcijām un pirmajiem diviem mainīgajiem.