JavaScript-də qapalılıqlar vasitəsilə modula parametrlərin ötürülməsi
Hansısa dəyərləri modula daxil etməmək, onları modulun özünün parametri kimi ötürmək yaxşı təcrübə hesab olunur (yəni yerində çağırılan funksiyanın parametri):
;(function(arg1, arg2) { // parametlər dəyişənlərə düşür
})(1, 2); // bəzi parametrləri ötürürük
Gəlin bir nümunəyə baxaq. Tutaq ki, bizim rəqəmli bir div və düyməmiz var:
<div id="div">3</div>
<button id="btn">click me</button>
Tutaq ki, bizim həmçinin müəyyən bir modulumuz var:
;(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);
});
})();
Gördüyünüz kimi, elementlərimizin selektorları modulun kodunda sərt şəkildə daxil edilib. Daha uğurlu həll onları modulun parametrləri kimi ötürmək olardı - beləliklə, gələcəkdə onları asanlıqla dəyişə biləcəyik. Gəlin modulumuzu düzəldək:
;(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');
Bir düymə və içərisinə rəqəmlər daxil edilən üç input verilib. Düyməyə kliklənildikdə konsola daxil edilən rəqəmlərin cəmini çıxarın. Tapşırığı modul vasitəsilə həll edin.