Освоение серии JavaScript

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

В JavaScript возможны функции более высокого порядка, потому что в этом языке функции являются объектами первого класса. Это означает, что язык обрабатывает функции так же, как и значения. Рассмотрение функций как значений, точно так же, как число или строка, может лишить очарование функций более высокого порядка. Потому что теперь это просто функции, которые могут принимать значения и возвращать значения. Ну Ду!

В контексте программирования функция, которая принимает другую функцию в качестве аргумента, конечно же, является функцией «более высокого порядка». Как насчет функции, которая передается как значение, как она называется? «Функционер»? Функция «нижнего порядка»? Что ж, это классно называется функцией обратного вызова, потому что она «вызывается» функцией выше по порядку — ракетостроение!

Давайте посмотрим на этот пример:

Как вы можете видеть здесь, функция sort принимает другую функцию, которая возвращает либо 1, -1, либо 0. Эти три значения являются критериями sort, необходимыми для определения того, как что-то сортировать. Здесь программист использует первоклассное качество объекта descendingly()function, передавая его в .sort()function в качестве значения. Следует отметить, что все функции в JavaScript являются функциями высокого порядка и все они являются объектами первого класса. Их свойства всегда есть, независимо от того, как они используются.

Функции высшего порядка обладают большой мощью и могут значительно упростить наш код. Они дают нам более высокую абстракцию при решении проблем. Абстракция в программировании означает уход от деталей — пошаговых команд, составляющих функцию или алгоритм.

Рассмотрим следующий пример. Нам дается задача взять все элементы stingsArr и преобразовать их в верхний регистр.

В первом примере мы создаем пустой массив с именем resultArr, прокручиваем stringAr, берем каждый элемент и преобразовываем их в верхний регистр, а затем помещаем их в наш resultArr. После того, как мы прошлись по всем пунктам и создали совершенно новый файл resultArr. Мы возвращаем этот массив как результат.

Остальные примеры делают то же самое. За исключением того, что они больше похожи на четкий ответ на четкий вопрос, который нам задали в начале.

Выводы:

  • Функции высшего порядка — это функции, которые оперируют другими функциями.
  • В JavaScript возможны функции высшего порядка, потому что здесь функции считаются объектами или значениями первого класса.
  • Функции более высокого порядка дают нам более высокий абстракционный взгляд на наш код, что позволяет нам сосредоточиться на проблеме, которую наш код пытается решить, по сравнению с рассмотрением всех побочных процессов, таких как выполнение функции в цикле. массив.