JavaScript-də modullarda obyektin eksportu qapalı funksiyalar vasitəsilə
Tutaq ki, bizdə aşağıdakı modul var:
;(function() {
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
})();
Tutaq ki, biz hər üç funksiyanı xarici ərauzə eksport etmək istəyirik. Bu halda, modulun xaricində lazımsız funksiya adları yaratmamaq üçün, bütün funksiyaları bir obyektə yazmaq və həmin obyekti eksport etmək daha yaxşıdır:
;(function() {
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
window.module = {func1: func1, func2: func2, func3: func3};
})();
Açar sözlər və dəyişən adları üst-üstə düşdüyü üçün, funksiyalar olan obyekti sadələşdirmək olar:
;(function() {
function func1() {
alert('module function');
}
function func2() {
alert('module function');
}
function func3() {
alert('module function');
}
window.module = {func1, func2, func3};
})();
Başqa bir yolla da getmək olar. Funksiyaları təyin edərkən onları dərhal obyektə yazacağıq, belə:
;(function() {
let module = {};
module.func1 = function() {
alert('module function');
}
module.func2 = function() {
alert('module function');
}
module.func3 = function() {
alert('module function');
}
window.module = module;
})();
Aşağıdakı modul verilmişdir:
;(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');
}
})();
İlk beş funksiyanı və ilk iki dəyişəni olan bir obyekti xarici ərauzə eksport edin.