Мы часто сталкивались с возвращаемыми значениями из функций (целочисленные/плавающие значения) на каждом языке при написании программы. Это звучит очень примитивно и фундаментально, поскольку мы все к этому привыкли, и действительно это легко понять. Но все может запутаться, когда вы начинаете возвращать функции из функции. JavaScript оказывается прекрасным языком, когда дело доходит до возврата функций, что дает вам больше контроля над программой.

Что на самом деле хранится?

Должно быть, мы столкнулись с ошибкой, когда забыли вызвать функцию (пропустив скобку в конце) и просто написали ее имя на любом другом языке. Но JavaScript играет здесь роль исключения.

Вот разница между вызовом и назначением оператора в JavaScript. value1 содержит строку «HELLO WORLD!», возвращенную функцией sample, тогда как value2 содержит полное определение функции. функции пример. Проще говоря, вы можете сказать, что тело функции sample получает новую «метку» с именем value2.

И теперь, если value2 вызывается, мы получим ту же строку, что и «HELLO WORLD».

Давайте «Вернемся»

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

Теперь вы можете четко разобраться, что означает каждое утверждение. В Утверждении 1 «a» содержит всю функцию add(), возвращенную sample(). Теперь, если мы вызовем ‘a’, мы косвенно вызовем функцию add(), и ее возвращаемый оператор будет нашим окончательным результатом.

Функция, которая возвращает другую функцию, в JavaScript называется функциями высшего порядка (HOC).

Это был очень примитивный пример для HOC, но под капотом происходит более сложное. Они очень мощные, так как многие вещи делаются с помощью этого устройства. Вы можете использовать несколько методов JavaScript, базовым принципом которых является HOC.

HOC являются источником таких концепций, как замыкание, итераторы, генераторы и многое другое.

Заключение

Из приведенного выше обсуждения мы можем сделать вывод, что в возврате функций из функции есть гораздо больше. Также рассмотрена распространенная ошибка, которую мы допускаем при понимании оператора вызова и назначения функции, который в конечном итоге используется для возврата функций, и родительской функции, которая в конечном итоге называется функцией высшего порядка.