Замыкания в JavaScript за 1 минуту

preview_player
Показать описание

Подпишись на мои соц сети:

Соц сети по JavaScript:

JavaScript cообщества:

Roadmap по каналу:
Рекомендации по теме
Комментарии
Автор

Умение объяснить сложное простым языком это высшее искусство. Спасибо, Владилен!

gros_chat_noir
Автор

замыкание это доступ к внешнему скопу из тела функции все, а не функция внутри функции, а в js вообще любая функция кроме функции созданной через new уже является замыканием

замыкание — функция, которая ссылается на свободные переменные

cyberronin
Автор

На первых секундах ждал девушку из старой рекламы по английскому "Чегооо бл*?")

gesildur
Автор

Отличная задумка, 1 ролик, один функционал. По ноде интересно бы было так же, а то годами с ней можно работать, а с редко используемым времени не хватает разобраться, пока не клюнет. JS и TS и так уже все кости перемыли по несколько раз.

fgunhoz
Автор

Побольше бы такого конента. Респект. Только начинаю с js разбираться. Так бы все объяснили, всё былобы на много проще.

ndceule
Автор

Что-то подобное ты объяснял в марафоне по JS в 5 вроде уроке

Bulat
Автор

Такого определения нет в официальной документации по JavaScript. Потому, что там нет ни описания того чем являются Scope - это программистский жаргон, ни что такое замыкания.
Современная спецификация оперирует терминами Enviroment (окружений). Никаких областей видимости и замыканий в официальной спецификации JS - НЕТ.

Есть цепочки окружений, которые просто связаны между собой.

Да, можно при помощи общей концепции областей видимости описать поведение JS - но тогда нужно сначала обьяснить как именно формируются окружения в JS после чего пояснить почему JS выбрал именно такой путь. После чего уже говорить то, что в Видео.

Или просто рассказать про цепочки окружений так как это описано в спецификации.

demimurych
Автор

Спасибо автору, сидя на унитазе меня осенило! Я не мог понять как замыкание может дать контекст как тот же call() для обьекта🤯 и тут я понял...

fighter
Автор

Но это неверное (а точнее, не полное) определение.
Совершенно не обязательно вкладывать функцию в функцию для создания замыкания.

Замыкание – это возможность из тела функции обращаться к ресурсам определённым вне этой функции вне зависимости от того, где она была вызвана. И не важно другие ли это функции, переменные или константы.

safort
Автор

Это как сон во сне или тако внутри тако, кто южный парк смотрел, поймёт))

braingriffin
Автор

Не сказано про время жизни. Переменные во внешней функции будут существовать пока существует инстансе внутренней. Например если внутренняя функция регистрируется как обработчик события.

xDEEDBEEF
Автор

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

ytmiqnm
Автор

Ну, нет, это вы объяснили область видимости функции. Замыкания работают сложнее, для их понимания нужно объяснить как работают ссылки, как работает сборщик мусора. В идеале ещё про каррирование нужно упомянуть.

seelairu
Автор

Как такую же подсветку сделать лр скобочки полоску

RyanCox-jzcj
Автор

let i = 0;
[0, 1, 2].forEach(n => i+= n);

Здесь функция, переданная в forEach, тоже замыкание, имеющее доступ к i

dmtrkskv
Автор

Спасибо за видео. Но, Владилен, вы в видео по сути указали на область видимости функции. А функция внутри функции недостаточно дает понять о том (новичкам особенно), что такой за зверь - "замыкание". Хотя по сути, без такого подхода не было бы возможно реализовать замыкание. Если мы возьмем отрывок из книги Кайла Симпсона: "Замыкание — это когда функция умеет запоминать и имеет доступ к лексической области видимости даже тогда, когда эта функция выполняется вне своей лексической области видимости." То есть, "..даже тогда, когда эта функция выполняется вне своей лексической области видимости."

anatolyrichman
Автор

Владилен, большое спасибо за отличное разъяснение! А теперь пишем на бумаге слова «электрическое окружение» или повторяем это в уме и смотрим видео ещё раз 😉. Я один это слышу?

DR-bxpt
Автор

Слишком мало просмотров для такого человека!

Eles
Автор

MDN и learnjs не являются официальной документацией, к тому же MDN на английском и русском отличается, и не просто отличается, а иногда инфа кардинально другая.

klapperbein
Автор

Такую "простую" идею не именовали бы так, если было бы всё просто. Продемонстрируйте лучше что творится со стеком вызовов, на примере замыкания с рекурсией. ;)

liscb