JavaScriptда closures орқали модуллар
Юқорида тавсифланган муаммо ҳар қандай дастурлаш тили учун хос. Ҳал қилиш учун ≪модуллар≪ деб аталувчилар қўлланилади.
Модул - ўзининг ичидаги ўзгарувчи ва функциялар фақат унинг ичида кўринадиган ва ташқарида ҳеч кимга таъсир қилмаслиги учун яратилган маълум бир контрукциядир.
JavaScriptда бир неча турдаги модуллар мавжуд. Энг содда ≪closures орқали модуллар≪ функцияни жойида чақириш орқали яратилади, мана бу щаклда:
;(function() {
// модул коди
})();
Бундай модулда яратилган ўзгарувчи ва функциялар ушбу модулдан ташқарида кўринмайди:
;(function() {
let str = 'модул ўзгарувчиси';
function func() {
alert('модул функцияси');
}
})();
// Бу ерда модул ўзгарувчи ва функциялари ножой:
alert(str);
alert(func);