Курсы по Vue
Менторство: 200$ за курс. Репетиторство: 20$ за занятие. Жми для подробностей!
⊗jsPmFNFRF 252 of 505 menu
Внимание! Репетиторство по Python! Осталось последнее место! Стоимость: 20$ за занятие 1.5 часа. Жми для подробностей!

Функция, возвращающая функцию в JavaScript

Пусть у нас есть вот такая функция, возвращающая строку:

function func() { return '!'; } let result = func(); console.log(result); // выведет '!'

Давайте теперь вместо строки, по аналогии, вернем анонимную функцию:

function func() { return function() { return '!'; }; } let result = func(); // в переменной result будет функция console.log(result); // выведет 'function() {return '!';}'

Как вы видите, переменная result теперь представляет собой функцию. Давайте выведем в консоль результат ее работы. Для этого напишем ей круглые скобки:

function func() { return function() { return '!'; }; } let result = func(); console.log( result() ); // выведет '!'

Так как вызов func() возвращает функцию, то мы можем сразу же и вызвать эту возвращаемую функцию, вот так: func()() - первые круглые скобки получают результат функции func (который сам является функцией), а вторые круглые скобки применяются к результату func.

Давайте попробуем:

function func() { return function() { return '!'; }; } console.log( func()() ); // выведет '!'

Сделайте функцию func1, которая будучи вызвана вот так: func1()(), вернет число 1. Сделайте аналогичную функцию func2, возвращающую число 2. Найдите сумму результатов этих функций.

fruzkadaes