Objektum exportálása modulokban closure-ök segítségével JavaScriptben
Tegyük fel, hogy a következő modulunk van:
;(function() {
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
})();
Tegyük fel, hogy mindhárom függvényt ki szeretnénk exportálni. Ebben az esetben, hogy ne szaporítsunk felesleges függvényneveket a modulon kívül, jobb, ha minden függvényt egy objektumba írunk, és exportáljuk ezt az objektumot:
;(function() {
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
window.module = {func1: func1, func2: func2, func3: func3};
})();
Mivel a kulcsnevek és a változónevek megegyeznek, az objektum függvényekkel leegyszerűsíthető:
;(function() {
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
window.module = {func1, func2, func3};
})();
Más úton is elmehetünk. Rögzítsük a függvényeket az objektumba közvetlenül a függvény deklarálásakor, így:
;(function() {
let module = {};
module.func1 = function() {
alert('module function');
}
module.func2 = function() {
alert('module function');
}
module.func3 = function() {
alert('module function');
}
window.module = module;
})();
Adott a következő modul:
;(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');
}
})();
Exportálja ki az objektumot az első öt függvénnyel és az első két változóval.