Dəyişənlərin və funksiyaların JavaScript modullarında closure-lar vasitəsilə ixracı
Bəzən modulun bəzi dəyişənlərinin və funksiyalarının xaricdən əlçatan olmasını təmin etmək lazım gəlir. Gəlin bunun necə edildiyinə baxaq. Tutaq ki, bizim aşağıdakı modulumuz var:
;(function() {
let str = 'modul dəyişəni';
function func() {
alert('modul funksiyası');
}
})();
Gəlin func funksiyamızı ixrac edək.
Bunun üçün onu brauzerdə daxili olan
window obyektinin xüsusiyyətinə yazaq:
;(function() {
let str = 'modul dəyişəni';
function func() {
alert('modul funksiyası');
}
window.func = func;
})();
İndi biz funksiyamızı modulun xaricindən çağıra bilərik:
;(function() {
let str = 'modul dəyişəni';
function func() {
alert('modul funksiyası');
}
window.func = func;
})();
window.func(); // 'modul funksiyası' çap edəcək
Eyni zamanda funksiyanı mütləq
window obyektinin xüsusiyyəti kimi çağırmaq lazım deyil:
;(function() {
let str = 'modul dəyişəni';
function func() {
alert('modul funksiyası');
}
window.func = func;
})();
func(); // 'modul funksiyası' çap edəcək
Aşağıdakı modul verilmişdir:
;(function() {
let str1 = 'modul dəyişəni';
let str2 = 'modul dəyişəni';
let str3 = 'modul dəyişəni';
function func1() {
alert('modul funksiyası');
}
function func2() {
alert('modul funksiyası');
}
function func3() {
alert('modul funksiyası');
}
})();
Dəyişənlərdən birini və istənilən iki funksiyanı xaricə ixrac edin.