JavaScript да функция-коллбэклар
Функцияларни бошқа функцияларга параметр сифатида ўтказиш мумкин. Буңдай функция-параметрлар коллбэклар (callback) деб аталади. Келинг улар билан ишлашни мисолда кўрамиз.
Фараз қилайлик, биз функция ясамоқчимиз, унинг биринчи параметри массив, иккинчиси эса коллбэк бўлиб, у ҳар бир массив элементига қўлланилади:
function each(arr, callback) {
// бу ерда қандидир код
}
Функциямизнинг реализациясини ёзайлик:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // функция-коллбэкни чақирамиз
}
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 функциямиз ёрдамида ҳар бир сатрнинг
биринчи белгисини катта ҳарф қилинг.