Показать сообщение отдельно
  #5 (permalink)  
Старый 04.08.2019, 05:42
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

Сообщение от Devero97 Посмотреть сообщение
Хм.. А каким образом сохраняется контекст в переменную?

Как происходит запоминание увеличенного значения?
Давайте немного перепишем пример:
function makeCounter2(){
 let count = 0;
 function plus(){
  console.log(count++);
 }
 plus();
 plus();
 plus();
}

makeCounter2();

Так понятней как происходит запоминание увеличенного значения?

Замыкание делает абсолютно то же самое, только ссылка на внутреннюю функцию plus() попадает за пределы ф-ии makeCounter2() и может вызываться оттуда.

Но новый вызов makeCounter2() выведет три числа опять с нуля, т.к. первой строкой создаётся новая переменная count со значением ноль. Конструкция makeCounter()() работает ровно так же.
Ответить с цитированием