Что такое функция высшего порядка?

Функция высшего порядка — это функция, удовлетворяющая любому из трех условий 👇🏻

1. принимает в качестве аргумента другую функцию

OR

2. возвращает любую другую функцию

OR

3. И 1, и 2

Давайте рассмотрим пример 👇🏻

Давайте разберем приведенный выше пример кода.

Во-первых, обратите внимание, что приветствие — это функция более высокого порядка, потому что она принимает другую функцию в качестве аргумента.

В приведенном выше примере функции утро(), вечер() и happyBirthday() являются примерами функций обратного вызова, потому что они передаются другой функции (в данном случае - приветствию), а затем вызываются этой функцией приветствия.

Функции более высокого порядка могут возвращать другую функцию.

Пример 👇🏻

Давайте разберемся с приведенным выше кодом.

Обратите внимание, calculateTotalPrice() — это функция более высокого порядка, которая возвращает другую функцию.

Также обратите внимание, как вызывать возвращаемую функцию в одной строке.

Некоторые из наиболее часто используемых встроенных функций высшего порядка — это map(), reduce() и filter().

Каждый JS-разработчик сознательно или неосознанно использует функции высшего порядка. 😆

В JavaScript функции являются гражданами первого класса, что означает:

1. С ними можно обращаться как с любой другой переменной.

2. Их можно передать в функцию.

3. Их можно вернуть из любой другой функции.