Даровардани параметрҳо ба модул тавассути маҳкамкунии дар JavaScript
Амали хуб он аст, ки баъзе қиматҳоро дар модул қатъӣ насозед, балки онҳоро параметри худи модул (яъне параметри функсияе, ки ҷойгир даъват мешавад) дарворӣ кунед:
;(function(arg1, arg2) { // параметрҳо ба тағирёбандаҳо меоянд
})(1, 2); // баъзе параметрҳоро дарворӣ мекунем
Биёед ба мисол нигарем. Фарз кунем, ки мо як див бо адад ва як тугма дорем:
<div id="div">3</div>
<button id="btn">click me</button>
Ҳамчунин фарз кунем, ки як модули муайян дорем:
;(function() {
let div = document.querySelector('#div');
let btn = document.querySelector('#btn');
function func(num) {
return num * num;
}
btn.addEventListener('click', function() {
div.textContent = func(div.textContent);
});
})();
Чунон ки мебинед, интихобкунандаҳои (selector) унсурҳои мо қатъиан дар рамзи модул қабатӣ карда шудаанд. Ҳалли беҳтар дарвори кардани онҳо ҳамчун параметрҳои модул хоҳад буд - ба ин тариқ дар оянда мо метавонем онҳоро осон тағир диҳем. Модули худро ислоҳ кунем:
;(function(selector1, selector2) {
let div = document.querySelector(selector1);
let btn = document.querySelector(selector2);
function func(num) {
return num * num;
}
btn.addEventListener('click', function() {
div.textContent = func(div.textContent);
});
})('#div', '#btn');
Як тугма ва се вурудии адад дода шудааст, ки ба онҳо ададҳо ворид карда мешаванд. Бо пахш кардани тугма, ҳосили ададҳои воридшударо ба консол чоп кунед. Масаларо бо истифода аз модул амалӣ кунед.