@ArturPetrov

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

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

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

let d = cs2(); 

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


Правильное определиние у меня? Или нет?
  • Вопрос задан
  • 455 просмотров
Решения вопроса 2
VicTHOR
@VicTHOR
(╮°-°)╮┳━━┳ ( ╯°□°)╯ ┻━━┻
судя по комментарию, как-то не правильно, вот так правильнее
function cs2() {
//   замыкаю область видимости переменной "c" внутри функции cs2()
        let c = 0;
        return function () {
             c++;  // во вложенной функции видно переменную, она внутри замыкания         
             console.log(c);
        }
}
console.log(c) //undefined - вне функции cs2 переменную не видно, это место за замыканием функции cs2 и внутри другого замыкания, возможно, window
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Чтобы понять и понять правильно, можно прочитать целиком страницу про Closure на Learn JavaScript ru.

Оттуда:

Замыкания

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы