JavaScriptте модулдерде closure аркылуу өзгөрмөлөр жана функцияларды экспорттоо
Кээде модулдүн кээ бир өзгөрмөлөрү жана функциялары тыштан жеткиликтүү болушу керек. Бул кандайча жасалышына карап чыгалы. Төмөндөгүдөй модул болсун:
javascript;(function() {
let str = 'модулдун өзгөрмөсү';
function func() {
alert('модулдун функциясы');
}
})();
Келгиле, биздин func функциябызды экспорттойлу.
Бул үчүн аны браузердин курамына кирген
window объектисинин касиетине жазабыз:
javascript;(function() {
let str = 'модулдун өзгөрмөсү';
function func() {
alert('модулдун функциясы');
}
window.func = func;
})();
Эми биз модулдин сыртынан өз функциябызды чакыра алабыз:
javascript;(function() {
let str = 'модулдун өзгөрмөсү';
function func() {
alert('модулдун функциясы');
}
window.func = func;
})();
window.func(); // 'модулдун функциясы' дегенди көрсөтөт
Бул учурда функцияны window объектисинин
касиети катары чакыруу милдеттүү эмес:
javascript;(function() {
let str = 'модулдун өзгөрмөсү';
function func() {
alert('модулдун функциясы');
}
window.func = func;
})();
func(); // 'модулдун функциясы' дегенди көрсөтөт
Задание 1
Төмөндөгү модул берилген:
javascript;(function() {
let str1 = 'модулдун өзгөрмөсү';
let str2 = 'модулдун өзгөрмөсү';
let str3 = 'модулдун өзгөрмөсү';
function func1() {
alert('модулдун функциясы');
}
function func2() {
alert('модулдун функциясы');
}
function func3() {
alert('модулдун функциясы');
}
})();
Өзгөрмөлөрдүн бирин жана эки каалаган функцияны сыртка экспорттогула.