Это такие функции, которые оперируют функциями, применяя одну или более функций и возвращая новую функцию.
Поскольку при этом возвращается новая функция, то ее назвали функцией обратного вызова, или callback-функцией. Подход с использованием callback-функций часто используется в программах, написанных на JavaScript.
Например, рассмотрим функцию простого преобразования строкового массива с использованием метода map.
var names = [‘яблоко’, ‘груша’, ‘слива’]; var upper = names.map(function(name){ return name.toUpperCase(); }); upper // [‘ЯБЛОКО’, ‘ГРУША’, ‘СЛИВА’],
Наличие в программах дублированного или похожего кода – верный признак необходимости использовать функции высшего порядка.
Рассмотрим еще один пример возможного использования функций высшего порядка:
var sum = function(x,y){return x+y}; var data = [1,1,3,4,8,8]; var deviations = data.reduce(sum)/data.length;
Такой подход называют абстракцией высшего порядка.