პარამეტრების მოდულში გადაცემა ჩაკეტვების მეშვეობით JavaScript-ში
კარგი პრაქტიკაა არ ჩავწეროთ ზოგიერთი მნიშვნელობა მოდულში პირდაპირ, არამედ გადავცეთ ისინი თავად მოდულის პარამეტრად (ანუ დაუყოვნებლივ გამოძახებული ფუნქციის პარამეტრად):
;(function(arg1, arg2) { // პარამეტრები ხვდებიან ცვლადებში
})(1, 2); // გადავცემთ რაღაც პარამეტრებს
მოდით შევხედოთ მაგალითს. დავუშვათ, ჩვენ გვაქვს div ელემენტი რიცხვით და ღილაკი:
<div id="div">3</div>
<button id="btn">დააწექი მე</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);
});
})();
როგორც ხედავთ, ჩვენი ელემენტების სელექტორები მყარად არის ჩაწერილი მოდულის კოდში. უფრო სწორი გადაწყვეტა იქნება მათი გადაცემა მოდულის პარამეტრებად - ასე მომავალში ჩვენ მარტივად შევძლებთ მათ შეცვლას. მოდით გამოვასწოროთ ჩვენი მოდული:
;(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');
მოცემულია ღილაკი და სამი ინფუთი, რომლებშიც შეყვანილია რიცხვები. ღილაკზე დაწკაპუნებისას გამოიტანეთ კონსოლში შეყვანილი რიცხვების ჯამი. განახორციელეთ ამოცანა მოდულის გამოყენებით.