Что такое функция высшего порядка?
Функция высшего порядка — это функция, удовлетворяющая любому из трех условий 👇🏻
1. принимает в качестве аргумента другую функцию
OR
2. возвращает любую другую функцию
OR
3. И 1, и 2
Давайте рассмотрим пример 👇🏻
Давайте разберем приведенный выше пример кода.
Во-первых, обратите внимание, что приветствие — это функция более высокого порядка, потому что она принимает другую функцию в качестве аргумента.
В приведенном выше примере функции утро(), вечер() и happyBirthday() являются примерами функций обратного вызова, потому что они передаются другой функции (в данном случае - приветствию), а затем вызываются этой функцией приветствия.
Функции более высокого порядка могут возвращать другую функцию.
Пример 👇🏻
Давайте разберемся с приведенным выше кодом.
Обратите внимание, calculateTotalPrice() — это функция более высокого порядка, которая возвращает другую функцию.
Также обратите внимание, как вызывать возвращаемую функцию в одной строке.
Некоторые из наиболее часто используемых встроенных функций высшего порядка — это map(), reduce() и filter().
Каждый JS-разработчик сознательно или неосознанно использует функции высшего порядка. 😆
В JavaScript функции являются гражданами первого класса, что означает:
1. С ними можно обращаться как с любой другой переменной.
2. Их можно передать в функцию.
3. Их можно вернуть из любой другой функции.