[[Environment]] ссылается на внешнее лексическое окружение?
function makeCounter() {
let count = 0;
return function() {
return count++;
};
}
let counter1 = makeCounter();
let counter2 = makeCounter();
alert( counter1() ); // 0
alert( counter1() ); // 1
alert( counter2() ); // 0 (независимо)
https://learn.javascript.ru/closure#okruzhenie-v-detalyah
В данном случае, makeCounter создан в глобальном лексическом окружении, так что [[Environment]] содержит ссылку на него.
Я правильно понимаю, что функция makeCounter ссылается на глобальное лексическое окружение , и при этом глобальное лексическое окружение ссылается на null, т.к у него нет внешнего лексического окружения?
И после срабатывания функции makeCounter его локальные переменные будут продолжать жить, т.к на него ссылается внутренняя функция?