Функции высшего порядка
Едем дальше. Поскольку функции — это объекты, то мы можем их передавать в другие функции. А функции высшего порядка, это функции, которые возвращают функции, или которые принимают функции в качестве параметра.
Вот простой пример функции, которая тоже возвращает функцию.
function makeAdder(base){
return function(num){
return base + num;
}
}
И пример ее использования.
var add2 = makeAdder(2);
add2(3); //5
add2(7); //9
Просто и очевидно.
А вот достаточно известный пример функции высшего порядка
var el = document.getElementById("btn");
el.addEventListener("click", function (event){
});
addEventListener в качестве параметра получает функцию. То есть addEventListener является функцией высшего порядка.
И функция-обработчик будет вызвана, когда произойдет какое-то событие.
Возможно вам более привычен другой вариант:
$("input[type=submit]").on("clink", function(event){
// ...
});
Или еще тысяча и один способ, которыми jQuery позволяет описывать обработчики.
Итак еще раз определение:
ФВП — это функции, которые либо возвращают функции либо принимают функции в качестве параметров.