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