Функсияҳои callback дар JavaScript
Функсияҳоро метавон ҳамчун параметрҳо ба функцияҳои дигар гузоштан. Чунин функцияҳои параметрӣ callback (callback) номида мешаванд. Биёед коркард бо онҳоро дар мисол бубинем.
Фарз мекунем, ки мо мехоҳем функцияе созем, ки параметри якумаш массив гирад, ва параметри дуюмаш - коллбэк, ки ба ҳар як унсури массив татбиқ карда мешавад:
function each(arr, callback) {
// дар ин ҷо баъзе код
}
Амолиёти функсияи худро нависед:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // функцияи callback-ро мехонем
}
return result;
}
Функсияи мо each - умумӣ аст.
Ин маънои онро дорад, ки мо метавонем ба он
коллбэкҳои гуногун гузошта, амалиётҳои гуногун
идома диҳем
дар болои массивҳо. Дар ин вақт коди функсияи мо боқӣ мемонад
тағйирнопазир - танҳо
коллбэкҳои гузошташуда тағйир меёбанд.
Барои мисол, бо ёрии функсияи худ ҳар як унсури массивро ба чоркунҷааш расонем. Барои ин параметрҳо коллбэки мувофиқро мегузорем:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Акнун элементҳои массивро ба кубашон расонем. Барои ин ҳамчун параметр коллбэки дигарро мегузорем, ки ин амалиётро иҷро мекунад:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Массиви ададҳо дода шудааст. Бо ёрии сохташудаи
мо функсия each ҳар як
элементро ду баробар зиёд кунед.
Массиви сатрҳо дода шудааст. Бо ёрии сохташудаи
мо функсия each аломатҳои
ҳар як сатрро бо тартиби баръакс гардонед.
Массиви сатрҳо дода шудааст. Бо ёрии сохташудаи
мо функсия each аломати якуми
ҳар як сатрро калимаи калон созед.