JavaScriptте модулдерде closure аркылуу өзгөрмөлөр жана функцияларды экспорттоо
Кээде модулдүн кээ бир өзгөрмөлөрү жана функциялары тыштан жеткиликтүү болушу керек. Бул кандайча жасалышына карап чыгалы. Төмөндөгүдөй модул болсун:
;(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('модулдун функциясы');
}
})();
Өзгөрмөлөрдүн бирин жана эки каалаган функцияны сыртка экспорттогула.