Parameetrite edastamine moodulile sulundite kaudu JavaScriptis

Hea tava on mitte koodida mingeid väärtusi moodulisse sisse, vaid edastada need mooduli enda parameetrina (ehk koheselt väljakutsuva funktsiooni parameetrina):

javascript;(function(arg1, arg2) { // parameetrid satuvad muutujatesse
  
})(1, 2); // edastame mõned parameetrid

Vaatame näidet. Olgu meil div arvuga ja nupp:

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

Olgu meil samuti mõni moodul:

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

Nagu näete, on meie elementide valijad jäigalt kooditud mooduli koodi. Paremaks lahenduseks oleks need edastada mooduli parameetritena - nii saame neid tulevikus lihtsalt muuta. Parandame oma moodulit:

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

Antud on nupp ja kolm sisendvälja, kuhu sisestatakse arvud. Nupu vajutamisel kuva konsoolis sissetoodud arvude summa. Realiseeri ülesanne mooduli abil.