Замыкание в JS. Объясните 2 момента

188
05 марта 2018, 02:01

Здравствуйте! Разбираю тему замыкания в JS и не могу понять двух моментов в коде с MDN по теме. Объясните пожалуйста (вопросы после кода).

function makeFunc() {
  var name = "Mozilla";
  function displayName() {
    alert(name);
  }
  return displayName; // (1 Вопрос)
};
var myFunc = makeFunc(); // (2 Вопрос)
myFunc();
  1. Функция возвращается без скобок. Что именно будет возвращено?
  2. Зачем функцию makeFunc() сохранять в переменную myFunc, ведь можно вызвать makeFunk() напрямую? Для того чтобы "обернуть" замыкание (displayName + ее окружение)?
Answer 1
  1. Функция возвращается без скобок. Что именно будет возвращено?

Как ни странно, будет возвращена именно эта функция.

  1. Зачем функцию makeFunc() сохранять в переменную myFunc, ведь можно вызвать makeFunk() напрямую? Для того чтобы "обернуть" замыкание (displayName + ее окружение)?

из пункта выше следует, что makeFunc() возвращает новую функцию, которая и сохраняется в переменную, для последующего вызова.

Действительно, можно не сохранять результат и вызвать его сразу

makeFunc()();

Но для наглядности результат первого вызова был вынесен отдельно.

READ ALSO
Как скопировать value ключа из localstorage в значение textarea?

Как скопировать value ключа из localstorage в значение textarea?

Как скопировать value ключа из localstorage в значение textarea? Чтобы потом использовать их при отправке формы

213
Отправка формы без кнопки submit

Отправка формы без кнопки submit

Добрый день, возникла такая проблемаЯ хочу при выборе файла (input type="file") Чтобы форма сабмитилась

242
Спарсить данные с сайта js, vuejs

Спарсить данные с сайта js, vuejs

Здравствуйте друзья, только начал изучение js, не могу понять как извлечь данные отсюда https://swapico/api/people/ Это нужно сделать с помощью обычного...

186