diff --git a/index.html b/index.html index 5e60e40..2f68dae 100644 --- a/index.html +++ b/index.html @@ -1,11 +1,77 @@ - + + - + Практика верстки - + + + + +
+
+

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

+

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

+

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

+

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

+

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

+

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

+ article-design/2744EFD6-B878-4DCB-B0D5-526F1B233733/CA501510-E978-4377-9076-8F392B899C1B@1x.png +

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

+ article-design/2744EFD6-B878-4DCB-B0D5-526F1B233733/848B0BFD-C857-4F1E-93BF-3822E0A81A7E@0.5x.png +

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

+
+
+ \ No newline at end of file diff --git a/styles.css b/styles.css index 1cbd2e0..8595bdd 100644 --- a/styles.css +++ b/styles.css @@ -1,8 +1,140 @@ /* Тут пиши основные стили */ +h1 { + font-family: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; + font-size: 42px; + color: rgba(0, 0, 0, 0.84); + text-align: left; + line-height: 44px; +} + +p { + font-size: 21px; + color: rgba(0, 0, 0, 0.84); + text-align: left; + line-height: 33px; +} + +h2 { + font-family: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; + font-size: 42px; + color: rgba(0, 0, 0, 0.84); + text-align: left; + line-height: 39px; +} + +img { + width: 700px; + height: 727px; + text-align: left; +} + +.img1 { + width: 700px; + height: 923px; + text-align: left; +} + +body { + margin: 0px; + padding: 0px; + width: 100%; + height: 100%; +} + + +.wrapper { + display: flex; + justify-content: center; +} + +.content { + font-family: Georgia, Cambria, "Times New Roman", Times, serif; + font-size: 18px; + width: 700px; + +} + +code { + font-family: "Courier New", monospace; + background-color: #F1F1F1; +} + +img.nav { + width: 97px; + height: 64px; + margin-left: 37px; + margin-top: 10px; + margin-bottom: 10px; +} + +nav { + background-color: #FAF9F8; +} + +nav>ul { + list-style: none; +} + +nav>ul>li { + display: inline-block; + margin-right: 30px; +} + +a { + font-family: LucidaGrande; + font-size: 24px; + color: #333333; + text-align: left; + line-height: 36px; + text-decoration: none; + cursor: url("responsive-design/E8E9A56B-53B7-494E-BE52-747EE607EC62/5301AFFB-CEE8-43FC-8F06-FB9785DF6E4A@1x.png"), pointer; +} + +a:hover { + text-decoration: underline; +} + +a.cur_pos { + color: #D0031C; +} @media (max-width: 800px) { -/* Тут пиши стили для мобилки. + + /* Тут пиши стили для мобилки. Стили применятся только когда страничка будет ≤800px шириной */ + img.nav { + margin-left: 20px; + } + + nav>ul { + flex-direction: column; + padding-left: 20px; + } + + nav>ul>li { + display: block; + padding: 0px; + margin: 5px 0px 5px 0px; + font-size: 20px; + } + + body { + width: 90%; + } + + img { + width: 100%; + } + + p { + font-size: 18px; + line-height: 22px; + } + + h1 { + font-size: 26px; + line-height: 28px; + } } \ No newline at end of file