Функция высшего порядка это популярный паттерн для переиспользования кода. Коротко, это функции которые в аргументах принимают другие функции, хорошим примером могут выступать нативные в JS функции map, filter, sort и др.
Напишем костюмную функцию log которая просто выводит console.log и используем её в HOF process которая принимает массив данных и callback:
function log(item) {
return console.log(item);
}
// Это и есть HOF :)
function process(data, callback) {
for (let i = 0; i < data.length; i += 1) {
callback(data[i]);
}
}
process([1, 2, 3], log);