Функцыі-коллбэкі ў 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 зрабіце загалоўнай
першы сімвал кожнага радка.