Запись на курсы по HTML, CSS, JavaScript, PHP, Python, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗jsPmFNClb 255 of 505 menu
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

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

byenru