Posredovanje parametrov v modul prek zaprtij v JavaScript

Dobra praksa je, da vrednosti ne vgradimo neposredno v modul, ampak jih posredujemo kot parameter modula (to je kot parameter funkcije, ki se kliče na mestu):

javascript;(function(arg1, arg2) { // parametri se shranijo v spremenljivke
  
})(1, 2); // posredujemo nekatere parametre

Poglejmo si primer. Recimo, da imamo div s številko in gumb:

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

Recimo, da imamo tudi določen 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);
  });
})();

Kot lahko vidite, so selektorji naših elementov togo vgrajeni v kodo modula. Boljša rešitev bi bila, da jih posredujemo kot parametre modula - tako jih bomo v prihodnosti zlahka spremenili. Popravimo naš 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

Podan je gumb in trije vnosna polja, v katera se vnesejo števila. Ob kliku na gumb izpišite v konzolo vsoto vnesenih števil. Implementirajte nalogo z uporabo modula.