#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 )
Комментариев нет:
Отправить комментарий