diff --git a/index.html b/index.html index 5e60e40..37458da 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,31 @@ - + +
+ +
+
+

Замыкания в JavaScript для начинающих

+

Замыкания — это одна из фундаментальных концепций JavaScript, вызывающая сложности у многих новичков, знать и понимать которую должен каждый JS-программист. Хорошо разобравшись с замыканиями, вы сможете писать более качественный, эффективный и чистый код. А это, в свою очередь, будет способствовать вашему профессиональному росту.
+
Материал, перевод которого мы публикуем сегодня, посвящён рассказу о внутренних механизмах замыканий и о том, как они работают в JavaScript-программах.

+

Что такое замыкание?

+

Замыкание — это функция, у которой есть доступ к области видимости, сформированной внешней по отношению к ней функции даже после того, как эта внешняя функция завершила работу. Это значит, что в замыкании могут храниться переменные, объявленные во внешней функции и переданные ей аргументы. Прежде чем мы перейдём, собственно, к замыканиям, разберёмся с понятием «лексическое окружение».

+

Что такое лексическое окружение?

+

Понятие «лексическое окружение» или «статическое окружение» в JavaScript относится к возможности доступа к переменным, функциям и объектам на основе их физического расположения в исходном коде. Рассмотрим пример:

+ +

Здесь у функции inner() есть доступ к переменным, объявленным в её собственной области видимости, в области видимости функции outer() и в глобальной области видимости. Функция outer() имеет доступ к переменным, объявленным в её собственной области видимости и в глобальной области видимости.
+
Цепочка областей видимости вышеприведённого кода будет выглядеть так:

+ +

Обратите внимание на то, что функция inner() окружена лексическим окружением функции outer(), которая, в свою очередь, окружена глобальной областью видимости. Именно поэтому функция inner() может получить доступ к переменным, объявленным в функции outer() и в глобальной области видимости.

+
\ No newline at end of file diff --git a/styles.css b/styles.css index 1cbd2e0..4dac403 100644 --- a/styles.css +++ b/styles.css @@ -1,5 +1,88 @@ -/* Тут пиши основные стили */ +.main-container{ + display: inline-block; + margin-left: 360px; + margin-right: 360px; +} +p { + font-family:Georgia; + font-size:21px; + color:rgba(0,0,0,0.84); + text-align:left; + line-height:33px; + margin: 10px 2px 0px 2px; +} + +h1, h2{ + font-family: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; + margin-top: 55px; + margin-bottom: 0px; +} + +h1{ + font-size:42px; + color:rgba(0,0,0,0.84); + text-align:left; + line-height:44px; +} + +h2{ + font-size:34px; + color:rgba(0,0,0,0.84); + text-align:left; + line-height:39px; +} + +.Words{ + font-family: "Courier New", monospace; + background-color: #f0f8ff; +} + +.l .kira{ + width: 700px; +} + +.kira{ + height: 923px; +} + +.l{ + height: 727px; +} + +.shapka { + display: inline-block; + background-color: rgb(238, 238, 238); + width: 100%; +} + +.shapka li { + list-style: none; + display: inline-block; + position: relative; + padding: 10px 15px; + margin: 0 2px; +} + +.shapka li a { + text-decoration: none; + color: inherit; + display: block; + font-family:LucidaGrande; + font-size:24px; + color:#333333; + text-align:left; + line-height:36px; +} + +.shapka li a:hover { + cursor: pointer; +} + +.shapka{ + border-bottom: 1px solid #0c0c0c; + border-top: 1px solid #0c0c0c; +} @media (max-width: 800px) { /* Тут пиши стили для мобилки.