JavaScript-da Callback Funksiyalar
Funksiyalarni boshqa funksiyalarga parametr sifatida uzatish mumkin. Bunday parametr sifatidagi funksiyalar callback (callback) deb ataladi. Keling, ular bilan ishlashni misolda ko'rib chiqaylik.
Faraz qilaylik, biz birinchi parametri massiv, ikkinchi parametri esa massivning har bir elementi uchun qo'llaniladigan callback bo'lgan funksiya yaratmoqchimiz:
function each(arr, callback) {
// bu yerda ma'lum bir kod
}
Keling, funksiyamizning realizatsiyasini yozamiz:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // callback funksiyasini chaqiramiz
}
return result;
}
Bizning each funksiyamiz universal.
Bu shuni anglatadiki, biz unga turli xil callback'larni
uzatib, massivlar ustida turli amallarni bajarishimiz mumkin.
Bunda funksiyamizning kodi o'zgarishsiz qoladi -
faqat uzatilayotgan callback'lar o'zgaradi.
Keling, misol uchun, funksiyamiz yordamida berilgan massivning har bir elementini kvadratga oshiraylik. Buning uchun mos keladigan callback'ni parametr sifatida uzatamiz:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Endi massiv elementlarini kubga oshiramiz. Buning uchun parametr sifatida ushbu amalni bajaradigan boshqa callback uzatamiz:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Sonlardan iborat massiv berilgan. Biz yaratgan
each funksiyasi yordamida har bir
elementni ikki baravar oshiring.
Satrlardan iborat massiv berilgan. Biz yaratgan
each funksiyasi yordamida har bir satr
belgilarini teskari tartibda yozing.
Satrlardan iborat massiv berilgan. Biz yaratgan
each funksiyasi yordamida har bir satrning
birinchi belgisini bosh harf qiling.