Сообщение от Devero97
|
Хм.. А каким образом сохраняется контекст в переменную?
Как происходит запоминание увеличенного значения?
|
Давайте немного перепишем пример:
function makeCounter2(){
let count = 0;
function plus(){
console.log(count++);
}
plus();
plus();
plus();
}
makeCounter2();
Так понятней как происходит запоминание увеличенного значения?
Замыкание делает абсолютно то же самое, только ссылка на внутреннюю функцию plus() попадает за пределы ф-ии makeCounter2() и может вызываться оттуда.
Но новый вызов makeCounter2() выведет три числа опять с нуля, т.к. первой строкой создаётся новая переменная
count со значением ноль. Конструкция makeCounter()() работает ровно так же.