Кто поможет разобраться с замыканиями в JS?

Sorax делает вещи на этом видео.
При вызове функции counter аргументом передается число 0. При этом в объявлении самой функции видно, что этот аргумент необходим для возвращаемой функции, а не для самой counter. Так как интерпретатор понимает, что этот аргумент нужен именно здесь?
  • Вопрос задан
  • 338 просмотров
Пригласить эксперта
Ответы на вопрос 3
@DarCKoder
Ответ написан
Комментировать
https://learn.javascript.ru/closures там есть пример со счетчиком
Ответ написан
Комментировать
@sergeystepanov1988
var counter = /* открывающая скобка, начало выражения => */ (
  function() { /* объявление анонимной функции */
    var count = 0;
    return function(num) {
      count = num !== undefined ? num : count;
      return count++;
    }
  } ( /* вызов анонимной функции */ ) 
); /* <= закрывающая скобка, конец выражения */

В этом примере переменной counter присваивается результат выполнения анонимной функции. Эта конструкция называется immediately invoked function expression, то есть немедленно-вызываемое функциональное выражение. Внутри себя она замыкает переменную count, которая таким образом недоступна для внешнего кода, но доступна функции возвращаемой через return.
Проще говоря, в переменной counter находится результат вызова функционального выражения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 23:46
20000 руб./за проект
24 нояб. 2024, в 23:07
2000 руб./за проект