Если вы знаете какой-либо язык программирования, вам знакомы «функции». Функции облегчают вашу работу и помогают реализовать принцип СУХОЙ (не повторяйтесь), который делает ваш код более чистым и понятным. Поведение функций и варианты использования характерны почти для всех языков, но в JavaScript функции могут делать немного больше, чем функции в других языках. Я имел в виду, что обычно в других языках функция может принимать и возвращать числа, строки, массивы, объекты, логические значения и многие другие типы данных. JavaScript также способен на это, но JavaScript также может принимать и возвращать функцию, на что другие языки не способны. А функции, написанные для приема или возврата любой другой функции, просто называются Функции высшего порядка. Это так просто. Я предполагаю, что вы уже поняли, что мы называем функцией высшего порядка, так что давайте укрепим наше понимание несколькими примерами.
Пример 1:
function serveDrinks(age) { if (age <= 5) { return "Milk" } else if (age > 5 && age <= 17) { return "Juice" } else if (age >= 18 && age <= 20) { return "Beer" } else if (age >= 21) { return "Wisky" } } function party(age = 0, serveDrinks) { return serveDrinks(age) } const age = 28 console.log(party(age, serveDrinks))
Здесь, в приведенном выше примере, есть две функции: «checkAge», которая возвращает напиток, подходящий для определенного возраста, и «party», которая использует эту функцию «checkAge», чтобы вернуть окончательный напиток в качестве вывода. Здесь функция «party» — это «функция высшего порядка», которая принимает функции «возраст» и «serveDrinks» и возвращает результат.
Пример 2:
function composeMsg(name) { console.log(`My name is ${name}`) } function sayName(time, name, composeMsg) { return setTimeout(() => { composeMsg(name) }, time) } const name = "Avinash" const time = 3000 sayName(time, name, composeMsg)
Выше есть две функции composeMsg и sayName, и мы хотим выполнить функцию composeMsg через заданное время, поэтому мы также можем использовать метод setTimeout для этого вместе с функцией sayName. Здесь sayName — это Функция высшего порядка.
Вот и все. Это все, что такое «функция высшего порядка». Надеюсь, теперь вы понимаете «Функции высшего порядка». Не стесняйтесь комментировать в случае любого вопроса, я буду рад помочь.
И "Подпишитесь", чтобы узнать больше о JavaScript.