JavaScriptте модулге параметрлерди жабылыштар аркылуу өткөрүү
Жакшы тажрыйба катары модулге кандайдыр бир маанилерди кодго түз эле киргизбестен, аларды модулдүн өзүнүн параметри (б.а., ошол жерде чакырылуучу функциянын параметри) катары өткөрүп берүү эсептелет:
;(function(arg1, arg2) { // параметрлер өзгөрмөлөргө түшөт
})(1, 2); // кандайдыр бир параметрлерди өткөрөбүз
Келгиле, мисал аркылуу карап көрөлү. Бизде сан бар див жана баскыч бар дейли:
<div id="div">3</div>
<button id="btn">click me</button>
Ошондой эле бизде бир модул бар дейли:
;(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);
});
})();
Көрүп тургандарыңардай, биздин элементтердин селекторлору модулдүн кодуна катуу киргизилген. Андан да мыкты чечим аларды модулдүн параметрлери катары өткөрүп берүү болот - ушундай жол менен биз кийинчерээк аларды оңой өзгөртө алабыз. Модулүбүздү оңдоп көрөлү:
;(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');
Бир баскыч жана сандар киргизилүүчү үч input берилген. Баскычты басканда, киргизилген сандардын суммасын консольго чыгарыңыз. Маселени модул колдонуп ишке ашырыңыз.