Отличное видео, которое показывает, как все работает изнутри, а это и есть самое важное! Спасибо большое!!!
@alexey_samokhin2 жыл бұрын
Способ, с помощью которого я навсегда запомнил замыкания - это сравнение их с рюкзаком. Когда функция создана и передаётся куда-либо, или возвращается из другой функции, то она носит с собой рюкзак. А в этом рюкзаке хранятся все переменные, которые были в области видимости во время создания этой функции.
@JackSteamBoy Жыл бұрын
это называется [[scope]]
@Ivan-ee4pz Жыл бұрын
Это самое лучшее объяснение замыкания в моей жизни, спасибо тебе огромное
@etemax Жыл бұрын
так можно ответить на собеседовании?))))
@OneMrZlodey Жыл бұрын
Нужно :) @@etemax
@pfk90253 жыл бұрын
Молодец, что в объяснении затронул Scopes. Спасибо!
@nolightnohope33022 ай бұрын
спасибо за урок. не знал, что можно передать функцию в качестве аргумента
@unknown.69148 ай бұрын
Лично у меня получилось понять замыкания, когда я продебажил все строчки кода и увидел как ведет себя js. Какая у него последовательность действий и что именно делают эти действия. Может кому-то это тоже поможет. Всем удачи! Михаилу спасибо за полезный контент.
@____Olga__3 жыл бұрын
спасибо за [[Scope]]. Инсайт!
@ВикаОношко-л8ж10 ай бұрын
спасибо за объяснения работы замыкания изнутри!было интересно,нужно еще пару раз посмотреть чтобы все уловить)
@RewCSharp9 ай бұрын
Спасибо за урок!
@ekaterinaskrynnik6932 Жыл бұрын
Спасибо большое за ваши старания ! С вашими уроками учёба становится легкой и супер интересной !
@alsusayfulina1865 Жыл бұрын
Михаил, спасибо большое, очень интересное и понятное объяснение 👍
@surr39554 жыл бұрын
Круто, спасибо! Давно хотел понять что такое мемоизация - как раз созрел )
@A.Floatrx2 жыл бұрын
мемоизация не может возвращать один и тот же результат всегда... все должно зависеть от аргументов, которые вы передаете в ф-цию... из аргументов мы получаем что-то типа хэша или просто JSON.stringify(args) - и используем это значение как вычисляемый ключ, для хранения результатов... как-то так...
@yantakushevich1014 Жыл бұрын
отлично объясняешь, голос приятный. Молодец!
@АлександрСергеевич-и4ы Жыл бұрын
Просто лучший!
@АлександрСергеевич-и4ы Жыл бұрын
В последнем примере, получается что функция замыкает в себе состояние? сильно, прям будто локальный стейт компонента во фреймворке. Я правильно понимаю?
@stanislavasgoldyckis77402 жыл бұрын
Спасибо
@yarvavilin4 жыл бұрын
Приятный голос)
@nastenaozu2 жыл бұрын
чел...))))))))))
@yarvavilin2 жыл бұрын
@@nastenaozu ахаххаахха
@mityadima2 жыл бұрын
Нашел замыкания, спасибо
@mr.listok Жыл бұрын
спасибо)
@glaciron2 жыл бұрын
Круто
@sergey_zatsepin3 жыл бұрын
Спасибо!
@A.Floatrx2 жыл бұрын
Чтобы лучше понимать как работают замыкания, стоит сначала разобраться как работает "сборщик мусора" в js... это напрямую связанные вещи
@СергейМельниченко-у8п Жыл бұрын
Я так и не пойму, контекст или же скоуп, это одно и тоже, что стэковый фрейм функции?(как в c# к примеру )
@v.demchenko Жыл бұрын
Было бы хорошо обсудить пример с каунтером. function useCounter() { let state = 0 function inc() { state++ } function dec() { state-- } return [state, dec, inc] } counter // 0 increment() counter // 0 Как сделать так, что бы возвращалось обновленное значение каунтера? P.s. функцию не предлагать.
@jefryredgenaldchen3936 Жыл бұрын
function useCounter() { let state = 0 return { inc: function () { state++ }, dec: function () { state-- }, value: function () { return state }, } } const result = useCounter() result.inc() //1 result.inc() //2 result.dec() //1 console.log(result.value()) //1 P.S. тебе наверное уже не актуально, но вдруг кому пригодится P.P.S сам новичок поэтому, если что не так, то сильно не пинайте
@v.demchenko Жыл бұрын
@@jefryredgenaldchen3936 в реакте ты не функцию получаешь. Так не годится)
@jefryredgenaldchen3936 Жыл бұрын
@@v.demchenko а ну так я до реакта еще даже не добрался)) говорю ж - новичок, так балуюсь))
@pogrebnoimaksim2 жыл бұрын
иллюстрация еще больше путает смотрящего... кто не понимает что такое Замыкание может еще больше запутаться... это можно лучше и проще объяснить просто на словах. Есть ролики на эту тему более развернутые. Но за видео спасибо, у вас много полезных роликов...
@cyrilanisimov11 ай бұрын
Очень многословное объяснение. Уводящее внимание слушателя от сути. Такое чувство, что жабастриптизёры сами не понимают, как работает язык
@ruslanhd72622 жыл бұрын
Честно говоря я не понял, остались вопросы. Пойду дальше искать видео, где разъясняют для совсем отсталых.
@digitalturkistan1857 Жыл бұрын
Александр лущенко
@АлексейСоколов-э1к Жыл бұрын
В самом первом примере, консоль выводит ошибку: Uncaught TypeError: helloWorld is not a function Если написать такой код: function createFn() { function greeting() { console.log('hello world'); } return greeting(); } const helloWorld = createFn(); console.log(typeof helloWorld); helloWorld(); При этом console.log(typeof helloWorld); выдает: undefined В чём дело?
@mishanep Жыл бұрын
Внутри функции createFn вы создали новую функцию и сразу ее вызвали. В результате вы вернули из createFn вместо новой функции, результат ее вызова. В данном случае undefined
@АлексейСоколов-э1к Жыл бұрын
@@mishanep да, но это же один в один ваш код. Только у вас показывает, что это функция, а у меня undefined. Как такое возможно, код же одинаковый?
@mishanep Жыл бұрын
@@АлексейСоколов-э1к значит не одинаковый. Уберите круглые скобки после return greeting
ты для начала разберись в разнице между "Вызвать функцию" и "Передать функцию", а потом уже такие темы учи
@romanmed90352 жыл бұрын
а при использовании стрелочных функций?
@mishanep2 жыл бұрын
То же самое. Замыкание - не про стиль написания функций, а больше про скоуп создаваемых функций.
@romanmed90352 жыл бұрын
@@mishanep спасибо. да, я сам сделал на стрелочных. но рассказав и показав сейчас на собеседовании то что тут увидел и услышал, получил нелестную оценку от спрашивавшего. определение замыкания и его свойства и особенности несколько не так он ожидал услышать.
@mishanep2 жыл бұрын
@@romanmed9035 а чего ожидали?
@romanmed90352 жыл бұрын
@@mishanep дословно не рассказано. это же не урок где можно попросить подробнее рассказать. но как я понял основной упор на контекст при создании замыкания. при решении задачи воспользовался полученным при просмотре этого видео знанием, которого оказалось недостаточным и ответ оказался совсем не верным. что-то не так с контекстом, поэтому не правильно указал что выведет функция. сохранить задание для анализа не позволили.
@mishanep2 жыл бұрын
@@romanmed9035 Вообще, когда уверен, можно и поспорить, и уточнить что хотят. В принципе слабо себе представляю кейсы, где могло бы понадобиться использовать контекст вместе с замыканием. Замыкание больше про область видимости. Здесь больше похоже на попытку запутать.