Задать вопрос
@ArturPetrov

Правильно ли я понимаю что такое замыкание?

Замыкание - это когда замыкается область видимости переменной в функции.

И пример:
function cs2() {
        let c = 0;
        return function () {        //   замыкаю область видимости переменной
             c++;                           
             console.log(c);
        }
}

let d = cs2(); 

d();
d();
d();


Правильное определиние у меня? Или нет?
  • Вопрос задан
  • 459 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Чтобы понять и понять правильно, можно прочитать целиком страницу про Closure на Learn JavaScript ru.

Оттуда:

Замыкания

В программировании есть общий термин: «замыкание», – которое должен знать каждый разработчик.

Замыкание – это функция, которая запоминает свои внешние переменные и может получить к ним доступ. В некоторых языках это невозможно, или функция должна быть написана специальным образом, чтобы получилось замыкание. Но, как было описано выше, в JavaScript, все функции изначально являются замыканиями (есть только одно исключение, про которое будет рассказано в Синтаксис "new Function").

То есть, они автоматически запоминают, где были созданы, с помощью скрытого свойства [[Environment]] и все они могут получить доступ к внешним переменным.

Когда на собеседовании фронтенд-разработчик получает вопрос: «что такое замыкание?», – правильным ответом будет определение замыкания и объяснения того факта, что все функции в JavaScript являются замыканиями, и, может быть, несколько слов о технических деталях: свойстве [[Environment]] и о том, как работает лексическое окружение.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@green_goo
Замыкание - это когда замыкается

Шикарно. Осталось пояснить что означает "замыкается"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы