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):
;(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:
<div id="div">3</div>
<button id="btn">noklikšķini mani</button>
Pieņemsim, ka mums ir arī kāds modulis:
;(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:
;(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');
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.