პარამეტრების მოდულში გადაცემა ჩაკეტვების მეშვეობით JavaScript-ში

კარგი პრაქტიკაა არ ჩავწეროთ ზოგიერთი მნიშვნელობა მოდულში პირდაპირ, არამედ გადავცეთ ისინი თავად მოდულის პარამეტრად (ანუ დაუყოვნებლივ გამოძახებული ფუნქციის პარამეტრად):

javascript;(function(arg1, arg2) { // პარამეტრები ხვდებიან ცვლადებში
  
})(1, 2); // გადავცემთ რაღაც პარამეტრებს

მოდით შევხედოთ მაგალითს. დავუშვათ, ჩვენ გვაქვს div ელემენტი რიცხვით და ღილაკი:

html<div id="div">3</div>
<button id="btn">დააწექი მე</button>

დავუშვათ, ჩვენ ასევე გვაქვს რაღაც მოდული:

javascript;(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);
  });
})();

როგორც ხედავთ, ჩვენი ელემენტების სელექტორები მყარად არის ჩაწერილი მოდულის კოდში. უფრო სწორი გადაწყვეტა იქნება მათი გადაცემა მოდულის პარამეტრებად - ასე მომავალში ჩვენ მარტივად შევძლებთ მათ შეცვლას. მოდით გამოვასწოროთ ჩვენი მოდული:

javascript;(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');
Задание 1

მოცემულია ღილაკი და სამი ინფუთი, რომლებშიც შეყვანილია რიცხვები. ღილაკზე დაწკაპუნებისას გამოიტანეთ კონსოლში შეყვანილი რიცხვების ჯამი. განახორციელეთ ამოცანა მოდულის გამოყენებით.