Parametrų perdavimas moduliui per uždarumas JavaScript

Gera praktika yra neįkalti tam tikrų reikšmių į modulį, o perduoti jas kaip paties modulio parametrą (tai yra, iškart iškviečiamos funkcijos parametru):

javascript;(function(arg1, arg2) { // parametrai patenka į kintamuosius
  
})(1, 2); // perduodame kažkokius parametrus

Pažiūrėkime pavyzdžiu. Tarkime, kad turime div'ą su skaičiumi ir mygtuką:

html<div id="div">3</div>
<button id="btn">spausk mane</button>

Tarkime, kad taip pat turime tam tikrą modulį:

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

Kaip matote, mūsų elementų selektoriai yra standžiai įkalti modulio kode. Geresniu sprendimu būtų juos perduoti kaip modulio parametrus - taip ateityje galėsime juos lengvai pakeisti. Pataisykime mūsų modulį:

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

Duotas mygtukas ir trys įvesties laukai, į kuriuos įvedami skaičiai. Paspaudus mygtuką, išvesti į konsolę įvestų skaičių sumą. Implementuokite užduotį naudojant modulį.