Страницы

Поиск по вопросам

четверг, 19 декабря 2019 г.

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

#javascript #замыкания


Лексическое окружение понятно, а как понять замыкания в JS. Какую функцию она выполняет.
Можете в простом примере простыми словами объяснить. Почти все видео-уроки бесполезны.
В нижеприведенном коде замыкания какую функцию выполняет?



function person() {
  let name = 'Peter';
  
  return function displayName() {
    console.log(name);
  };
}
let peter = person();
peter(); // 'Peter'



    


Ответы

Ответ 1



Замыкание - это возможность внутри функции обращаться к переменным, объявленным не в самой функции, а в одном из содержащих её блоков. Ещё замыканием можно назвать всё множество таких переменных. В твоём примере переменная name доступна через замыкание.

Ответ 2



Замыкание – это функция вместе со всеми внешними переменными, которые ей доступны. То есть, замыкание – это функция + внешние переменные. Тем не менее, в JavaScript есть небольшая терминологическая особенность. Обычно, говоря «замыкание функции», подразумевают не саму эту функцию, а именно внешние переменные. Иногда говорят «переменная берётся из замыкания». Это означает – из внешнего объекта переменных. (источник: https://learn.javascript.ru/closures)

Ответ 3



Способ, с помощью которого я навсегда запомнил замыкания — это сравнение их с рюкзаком. Когда функция создана и передаётся куда-либо, или возвращается из другой функции, то она носит с собой рюкзак. А в этом рюкзаке хранятся все переменные, которые были в области видимости во время создания этой функции. (Источник: https://medium.com/nuances-of-programming/я-никогда-не-понимал-замыкания-в-javascript-часть-первая-3c3f02041970 )

Комментариев нет:

Отправить комментарий