Parametru nodošana modulim caur aizvērumiem JavaScript

Tiek uzskatīts par labu praksi neiekodēt nekādas vērtības modulī, bet tās nodot kā paša moduļa parametru (tas ir, kā uzreiz izsauktās funkcijas parametru):

javascript;(function(arg1, arg2) { // parametri nonāk mainīgajos
  
})(1, 2); // padodot dažus parametrus

Apskatīsim piemēru. Pieņemsim, ka ir div ar skaitli un poga:

html<div id="div">3</div>
<button id="btn">noklikšķini mani</button>

Pieņemsim, ka mums ir arī kāds modulis:

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

Kā redzat, mūsu elementu selektori ir iekodēti moduļa kodā. Labāks risinājums būtu tos nodot ka moduļa parametri - tā nākotnē mēs varam viegli tos mainīt. Pārveidosim mūsu moduli:

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

Dota poga un trīs ievades lauki, kuros ievada skaitļus. Nospiežot pogu, izdrukājiet ievadīto skaitļu summu konsolé. Īstenojiet uzdevumu, izmantojot moduli.