#javascript #замыкания
Здравствуйте! Разбираю тему замыкания в JS и не могу понять двух моментов в коде с MDN по теме. Объясните пожалуйста (вопросы после кода). function makeFunc() { var name = "Mozilla"; function displayName() { alert(name); } return displayName; // (1 Вопрос) }; var myFunc = makeFunc(); // (2 Вопрос) myFunc(); Функция возвращается без скобок. Что именно будет возвращено? Зачем функцию makeFunc() сохранять в переменную myFunc, ведь можно вызвать makeFunk() напрямую? Для того чтобы "обернуть" замыкание (displayName + ее окружение)?
Ответы
Ответ 1
Функция возвращается без скобок. Что именно будет возвращено? Как ни странно, будет возвращена именно эта функция. Зачем функцию makeFunc() сохранять в переменную myFunc, ведь можно вызвать makeFunk() напрямую? Для того чтобы "обернуть" замыкание (displayName + ее окружение)? из пункта выше следует, что makeFunc() возвращает новую функцию, которая и сохраняется в переменную, для последующего вызова. Действительно, можно не сохранять результат и вызвать его сразу makeFunc()(); Но для наглядности результат первого вызова был вынесен отдельно.
Комментариев нет:
Отправить комментарий