Интиқол додани тағйирёбандаҳо ва функсияҳо дар модулҳо тавассути маҳкамкунӣ дар JavaScript
Гаҳе гоҳ зарур аст, ки баъзе тағйирёбандаҳо ва функсияҳои модул аз берун дастрас бошанд. Биёед бубинем, ки ин чӣ тавр анҷом дода мешавад. Бигзор модули зеринро дошта бошем:
;(function() {
let str = 'тағйирёбандаи модул';
function func() {
alert('функсияи модул');
}
})();
Бигзор функсияи худро func интиқол диҳем.
Барои ин онро дар хосияти объекти дар браузер
дарунсохташудаи window сабт мекунем:
;(function() {
let str = 'тағйирёбандаи модул';
function func() {
alert('функсияи модул');
}
window.func = func;
})();
Ҳоло мо метавонем функсияи худро аз беруни модул фаро хонем:
;(function() {
let str = 'тағйирёбандаи модул';
function func() {
alert('функсияи модул');
}
window.func = func;
})();
window.func(); // 'функсияи модул'-ро чоп мекунад
Дар ин ҳолат, воқеан зарур нест, ки функсияро
ҳамчун хосияти объекти window фаро хонем:
;(function() {
let str = 'тағйирёбандаи модул';
function func() {
alert('функсияи модул');
}
window.func = func;
})();
func(); // 'функсияи модул'-ро чоп мекунад
Модули зерин дода шудааст:
;(function() {
let str1 = 'тағйирёбандаи модул';
let str2 = 'тағйирёбандаи модул';
let str3 = 'тағйирёбандаи модул';
function func1() {
alert('функсияи модул');
}
function func2() {
alert('функсияи модул');
}
function func3() {
alert('функсияи модул');
}
})();
Яке аз тағйирёбандаҳо ва ду функсияи ихтиёрӣ-ро ба берун интиқол диҳед.