Замыкания в JavaScript для начинающих
+Замыкания — это одна из фундаментальных концепций JavaScript, вызывающая сложности у многих новичков, зн + понимать которую должен каждый JS-программист. Хорошо разобравшись с замыканиями, вы сможете писать бо + качественный, эффективный и чистый код. А это, в свою очередь, будет способствовать вашему профессиона + росту. +
+Что такое замыкание?
+Замыкание — это функция, у которой есть доступ к области видимости, сформированной внешней по отноше + функции даже после того, как эта внешняя функция завершила работу. Это значит, что в замыкании могут хр + переменные, объявленные во внешней функции и переданные ей аргументы. Прежде чем мы перейдём, собствен + замыканиям, разберёмся с понятием «лексическое окружение». +
+Что такое лексическое окружение?
+Понятие «лексическое окружение» или «статическое окружение» в JavaScript относится к возможности доступа + переменным, функциям и объектам на основе их физического расположения в исходном коде. Рассмотрим при +
+
+ Здесь у функции inner() есть доступ к переменным, объявленным в её собственной области видимости, в
+ видимости функции outer() и в глобальной области видимости. Функция outer() имеет доступ к пере
+ объявленным в её собственной области видимости и в глобальной области видимости.
+ Цепочка областей видимости вышеприведённого кода будет выглядеть так:
+
+ Обратите внимание на то, что функция inner() окружена лексическим окружением функции outer(), к
+ очередь, окружена глобальной областью видимости. Именно поэтому функция inner() может получить до
+ переменным, объявленным в функции outer() и в глобальной области видимости.
+
+