[[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 его локальные переменные будут продолжать жить, т.к на него ссылается внутренняя функция?


Ответы (0 шт):