Как стать автором
Обновить

Комментарии 5

На мой взгляд не хватает примера использования лексической области видимости для callback функций. Что-то вроде:
function outer(param) {
  function inner() {
    console.log('delayed output: ', param);
  }
  return inner;
}
setTimeout(outer('something to print'), 1000)

В целом статья хорошая, все по делу.
Что за шрифт на КДПВ?
Прекрасное дополнение к книге Кайла Симпсона «Замыкания и объекты».

В статье мало сказано про самое главное – про само правило создания областей видимости, когда они создаются, и, соответственно, почему всё описанное в статье работает именно так.


Приведены примеры фактического использования областей видимости, но важно что, прежде всего, они вложены друг в друга, и текущий выполняемый код имеет доступ ко всем наружным областям видимости из текущей точки, корневая область из которых является глобальной областью видимости.


И вот от этого уже пляшет всё остальное – прежде всего, блочная конструкция, которая создает область видимости, и без разницы что это, if, while, else, или вообще ничего (просто блочная конструкция).


Поэтому, вероятно, всё значительно проще чем написано в статье – не нужно ничего запоминать, а просто знать что как только вы используете блочную конструкцию ({...}), вы создаете область видимости.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории