Paraméterek átadása moduloknak zárásokon keresztül JavaScriptben

Jó gyakorlat, ha nem rögzítünk értékeket közvetlenül a modulba, hanem paraméterekként adjuk át őket magának a modulnak (vagyis az azonnal meghívott függvény paramétereként):

javascript;(function(arg1, arg2) { // a paraméterek a változókba kerülnek
  
})(1, 2); // átadunk néhány paramétert

Nézzünk egy példát. Tegyük fel, hogy van egy div-ünk egy számmal és egy gomb:

html<div id="div">3</div>
<button id="btn">click me</button>

Tegyük fel, hogy van egy modulunk is:

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

Amint láthatod, az elemeink szelektorai mereven be vannak égetve a modul kódjába. Jobb megoldás lenne, ha paraméterekként adnánk át őket a modulnak - így a jövőben könnyen megváltoztathatjuk őket. Javítsuk a modulunkat:

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

Adott egy gomb és három input mező, amelyekbe számokat lehet beírni. A gomb megnyomására írja ki a konzolra a beírt számok összegét. Valósítsd meg a feladatot egy modullal.