#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()(); Но для наглядности результат первого вызова был вынесен отдельно.
Комментариев нет:
Отправить комментарий