Замыкания в JavaScript | Юрий Федоренко

  Рет қаралды 64,334

Hillel IT School

Hillel IT School

5 жыл бұрын

Замыкания - одна из самых мощных особенностей JavaScript, без них ни туда, ни сюда.
Это комбинация функции и лексического окружения, в котором эта функция была определена. Другими словами, замыкание даёт вам доступ к Scope внешней функции из внутренней функции. В JavaScript замыкания создаются каждый раз при создании функции, во время её создания.
Про то что такое Замыкание в Джаваскрипте, рассказывает Senior Software Developer Юрий Федоренко.
Подписывайтесь на телеграм-канал t.me/callforward
Компьютерная Школа Hillel
site: ithillel.ua
fb: / hillel.it.school
in: / hillel_itschool
tw: / hillel_itschool
ln: / hillel_itschool
yt: / hillelitschool
#javascript #frontend #js #замыкания #прототипы

Пікірлер: 132
@liveinenduro2647
@liveinenduro2647 5 жыл бұрын
так объяснял что сам понял - тру стори
@anastasiazaytseva6922
@anastasiazaytseva6922 5 жыл бұрын
Такие видюшки помогают быстро освежить знания перед собеседованиями) жаль что их так мало
@wayfarerofuntroddenpaths7571
@wayfarerofuntroddenpaths7571 5 жыл бұрын
Спасибо Юра за твои хоть и не большие, но все таки понятные изложения. Ждем-с новые твои выпуски по JS.
@vladyslavanakonechna7693
@vladyslavanakonechna7693 5 жыл бұрын
Это гениальное объяснение замыканий! И правда легонько и не навячиво. Спасибо!
@user-gz3hk1pv1p
@user-gz3hk1pv1p 4 жыл бұрын
уже дня 3 пытаюсь разобраться в этой теме, что зачем и как, а тут посмотрел данное видео, и за 15 мин понял что оно такое)) спасибо автору!) лайк однозначно!)
@DmitriyVereschagin
@DmitriyVereschagin 3 жыл бұрын
Классический случай.
@MrCter
@MrCter 5 жыл бұрын
Юра, продолжайте, умоляю ))
@Bunny_Love
@Bunny_Love 3 жыл бұрын
Мне пришлось несколько раз внимательно прослушать - но в итоге я все поняла! Огромное спасибо!
@Dozortsev
@Dozortsev 4 жыл бұрын
Юра, ты крут! Спасибо за видео
@dmitrijponkin
@dmitrijponkin 5 жыл бұрын
Круто! Спасибо за Ваш труд))
@user-zd2zm7zv9d
@user-zd2zm7zv9d 5 жыл бұрын
Спасибо Родной!!!! Ты лучший:))))
@Sefian
@Sefian 2 жыл бұрын
Спасибо, все гораздо проще чем мне казалось. Главное что помогли поменять, так это способы применения.
@HillelITSchool
@HillelITSchool 2 жыл бұрын
Раді, що були корисні 💙
@coltesun457
@coltesun457 4 жыл бұрын
Спасибо! Очень доступно объяснил)
@user-vk6wk8bs5m
@user-vk6wk8bs5m 2 жыл бұрын
Очень хорошее видео! Благодарю)
@user-uv5qy3lq3i
@user-uv5qy3lq3i 4 жыл бұрын
Просто супер, спасибо большое)
@dalaysalchak5073
@dalaysalchak5073 4 жыл бұрын
Толково объяснил. Спасибо!
@akkelaforest779
@akkelaforest779 2 жыл бұрын
Спасибо, очень доступно обьяснили)
@SergeSchekhovtsov
@SergeSchekhovtsov 2 жыл бұрын
Великолепное объяснение. Закрыл пробелы и всё понял с первого раза.
@disposables72
@disposables72 4 жыл бұрын
Подпишусь, может побольше будет таких мини-ликбезов. Перед сном самое то)))
@user-nm5hc6jw9f
@user-nm5hc6jw9f 3 жыл бұрын
Редко пишу комментарии, но за такое хорошее видео, грех не написать!) Спасибо вам.
@aktotuttttt
@aktotuttttt 3 жыл бұрын
И заслуживает лайка бро. Как же круто рассказал. Поклон, низкий, бью челом
@user-yv3gg4um2i
@user-yv3gg4um2i 5 жыл бұрын
Спасибо большое !! Есть просьба сделать серию уроков ES6-7
@oleksiipetrenko3824
@oleksiipetrenko3824 5 жыл бұрын
Юра, где же видео про асинхронность?
@user-kl4yk8tm2b
@user-kl4yk8tm2b 5 жыл бұрын
Я уже раз 10 посмотрел видео про this и прототипы - обожаю его. И вот подъехал потенциальный новый фаворит.)
@fonharry9086
@fonharry9086 5 жыл бұрын
Это какое?
@user-kl4yk8tm2b
@user-kl4yk8tm2b 5 жыл бұрын
kzbin.info/www/bejne/ZqfWZ4qhg96tm8U&list=LLeXZ31bUXjUlXgMibPcrkCw&index=18
@fonharry9086
@fonharry9086 5 жыл бұрын
благодарю
@AlexeyTo
@AlexeyTo 5 жыл бұрын
Очень просто и понятно объясняется, отличное видео!
@user-et4vi6ei4z
@user-et4vi6ei4z 5 жыл бұрын
Рок
@jenyaspace
@jenyaspace 5 жыл бұрын
а теперь точно также но про промисы
@40par
@40par 4 жыл бұрын
Спасибо, только теперь разобрался
@vitalikgorohkov1896
@vitalikgorohkov1896 2 жыл бұрын
На этом видео понял тему! спасибо за помощь
@HillelITSchool
@HillelITSchool 2 жыл бұрын
Рады, что были полезны )
@user-re7hx3sq2c
@user-re7hx3sq2c 5 жыл бұрын
Можно этот пример переписать в одну строку const Counter = (count = 0) => () => ++count, но тогда не так понятно конечно, без привычки.
@yuriiserdiuk3918
@yuriiserdiuk3918 4 жыл бұрын
Дякую за відео , все сподобалось ))
@serggey75
@serggey75 2 жыл бұрын
вот только теперь я понял замыкания) спасибо)
@HillelITSchool
@HillelITSchool 2 жыл бұрын
Раді, що стали в нагоді!
@YaroslavEx
@YaroslavEx Жыл бұрын
дякую, реально допомогло!
@HillelITSchool
@HillelITSchool Жыл бұрын
Раді, що були корисні!
@user-tk7qv9rv2c
@user-tk7qv9rv2c Жыл бұрын
Вроде и до этого понятно было, но как послушала, поняла, что только сейчас и поняла))))😁
@XanjaevRodmam
@XanjaevRodmam 4 жыл бұрын
Бро. Спасибо Бро. Ты настроящий Бро, Бро
@mariapokrasa2966
@mariapokrasa2966 5 жыл бұрын
Лайк не глядя 🤣 Лучший учитель 👍👍👍👍
@artemshulga7316
@artemshulga7316 5 жыл бұрын
Спасибо. Прочел в книге Выразительный js о замыканиях но не понял, а здесь все очень понятно.
@faizulla5838
@faizulla5838 3 жыл бұрын
почитай снова, здесь он путает.... один палец с другим.
@user-lx5vv3uu8u
@user-lx5vv3uu8u 3 жыл бұрын
Спасибо!
@grimkasad4183
@grimkasad4183 3 жыл бұрын
Фантастика, нарешті)
@djoniKage
@djoniKage 5 жыл бұрын
А я думал замыкание это что то космическое. Видите от препода многое зависить. Многие просто не умеют передавать свои знания и еще больше запутывает студента. А некоторые вот так просто человеческим языком доступно делают.
@whatifiwant
@whatifiwant 4 жыл бұрын
2020((( а мы ещё ждём!)))
@Hannah-ly6ff
@Hannah-ly6ff 3 жыл бұрын
спасибо!!
@dmitryparshin4204
@dmitryparshin4204 5 жыл бұрын
какой же милый лектор
@user-lr8vd1cw9s
@user-lr8vd1cw9s 3 жыл бұрын
Пример с счетчиком очень полезный
@alexbliznec
@alexbliznec 4 жыл бұрын
2019 на дворе, а видео про асинхронность так нет(((
@CozyAvocados
@CozyAvocados 3 жыл бұрын
2020 и тоже нет(
@St3rnhunt3r
@St3rnhunt3r 3 жыл бұрын
@@CozyAvocados и в 2021 не будет(
@user-lx5vv3uu8u
@user-lx5vv3uu8u 3 жыл бұрын
Уже 2 января 2021! Ишо нЭт! )))
@PacoOfficial
@PacoOfficial 5 жыл бұрын
супер
@vladvoloshenko5701
@vladvoloshenko5701 2 жыл бұрын
спасибо)
@aleksandrpolevyk9572
@aleksandrpolevyk9572 3 жыл бұрын
Объясняешь просто супер. Музыку приложите в описание.
@alenache1
@alenache1 2 жыл бұрын
кстати, для замыкания не обязательно возвращать одну функцию из другой, можно положить ее в память любым способом, например, связать ее со слушателем событий
@saidvalc2177
@saidvalc2177 5 жыл бұрын
мне не перезвонили
@user-yl3vj9ms3c
@user-yl3vj9ms3c 4 жыл бұрын
Лексическое окружение функции это не контекст того, где она объявлена. Согласно спецификации, лексическое окружение функции создается во время выполнения этой функции, а замыкание образовывается в момент создания объекта функции, при чём если создавать объект функции с помощью синтаксиса new Function, он будет ссылаться на глобальное лексическое окружение. Для создания изолированной переменной не обязательно возвращать функцию, это можно сделать так: var counter; function makeCounter() { var сount = 0; counter = function() { return ++сount; } } makeCounter(); counter(); //вернёт 1 counter(); //вернёт 2 или так: { let count = 0; function counter() { return ++count; } } counter(); //вернёт 1 counter(); //вернёт 2
@yurafedorenko1218
@yurafedorenko1218 4 жыл бұрын
да, все так, там имелось ввиду внешнее лексическое окружение, вообще эти термины часто путают, я даже делал вот тут разбор - kzbin.info/www/bejne/fqS7fJyBg8mYiqs (ссылка с тайм-меткой) но это видео было бы сильно перегруженным если бы прямо в нем это разобрать(
@user-yl3vj9ms3c
@user-yl3vj9ms3c 4 жыл бұрын
@@yurafedorenko1218 Интересное видео, хотя говоря про способы вызова функций в контексте this, Вы не упомянули о стрелочных функциях, но это не столь существенно. Хотя выходит, что this зависит не только от способа вызова функции но и от ее типа. Относительно нынешнего видео, мне кажется, что прежде всего надо говорить о том, что в среде разработчиков JS существуют три определения термина "замыкание". Первое, самое верное, которое соответствует определению для всех языков программирования - замыкание это сочетание функции и её внешнего лексического окружения. Второе - это сочетание функции и свободных переменных, которые она использует. Третье - это сочетание функции и изолированных переменных, которые она использует, при чем функция может использовать изолированные переменные из нескольких лексических окружений. Иногда замыканием называют только одну из составляющих определения, то есть или саму функцию, или сами переменные или лексическое окружение.
@user-yl3vj9ms3c
@user-yl3vj9ms3c 4 жыл бұрын
Что касается первого определения, еще существует немного другая версия - замыкание это сочетание функции и её родительского лексического окружения, то есть того, в котором она была определена, но тут появляется проблема в случае синтаксиса new Function. К тому же коректнее говорить о лексическом окружении кода, в котором она была определена.
@user-yl3vj9ms3c
@user-yl3vj9ms3c 4 жыл бұрын
Теоретически второе определение тоже соответсвует определению замыкания для всех языков программирования. Можно сказать, что первое более абстрактное и основанное на спецификации, а второе более простое и основанное на практике, при чём они отличаются друг от друга, ведь свободные переменные могут находиться не только во внешнем лексическом окружении.
@user-yl3vj9ms3c
@user-yl3vj9ms3c 4 жыл бұрын
Я еще раз проверил разные определения этого термина, относительно других языков и в целом. Получается, что второе определение, то есть "сочетание функции и свободных переменных, которые она использует" и есть самым правильным. Возвращаясь к видео, то что Вы имели в виду это конечно хорошо знать, но Вы ведь сказали другое, значит ошиблись, то есть вводите людей в заблуждение. Надо бы это исправить, а то получается как-то нехорошо. Тут вот еще одно видео live.ithillel.ua/javascript-funkcii-oblasti-vidimosti-zamykanie от вашей школы с другой версией определения, насколько я понял основанной на том, что показывает браузер.
@ssurrokk
@ssurrokk 2 жыл бұрын
🔥
@andreyzinovjev3920
@andreyzinovjev3920 3 жыл бұрын
Бен Аффлек в JS))
@yaroslavzef7267
@yaroslavzef7267 4 жыл бұрын
Юра, а как там дела с асинхронностью обстоят?
@santiagozarpado1145
@santiagozarpado1145 4 жыл бұрын
замыкания - интересная и иногда полезная техника, но никак не необходимая без них и туда и сюда
@divocean4085
@divocean4085 5 жыл бұрын
Я вот чего не понял только. Мы вызываем ту анонимную функцию, которая возвращает увеличенное значение переменной count, которое хранится в "родительской функции" Counter. Тут всё понятно, но! Допустим, мы отдельно вызовем родительскую функцию Counter, которая по идее должна обнулить переменную count (и она делает это, что показывается при дебаге), но дальнейшие вызовы анонимной функции через count() показывают, что переменная не обнулялась. Как так происходит? Новый вызов родительской Counter() создаёт новую область видимости с новой переменной, в то время как counter продолжает работать в старой со своей переменной, так получается? console.log(counter()); // 1 console.log(counter()); // 2 Counter(); console.log(counter()); // 3 console.log(counter()); // 4
@yurafedorenko1218
@yurafedorenko1218 5 жыл бұрын
ее вызов ничего не обнуляет, ее вызов создает новую область видимости в вашем коде результат вызова Counter(); никуда не сохраняется и порожденный новый счетчик как бы теряется) я это объясняю на 4:52
@user-zd6tt5by9z
@user-zd6tt5by9z 3 жыл бұрын
@@yurafedorenko1218 повторил код на 4:10 и возвращает не цифры, а тело родительской функции. Почему так?
@yurafedorenko1218
@yurafedorenko1218 3 жыл бұрын
@@user-zd6tt5by9z ну он возращает функцию, а вот когда ее вызывать, то будут числа
@user-zd6tt5by9z
@user-zd6tt5by9z 3 жыл бұрын
@@yurafedorenko1218 а как ее правильно вызвать?
@yurafedorenko1218
@yurafedorenko1218 3 жыл бұрын
@@user-zd6tt5by9z ну типа: var firstCounter = Counter(); var secondCounter = Counter(); console.log( firstCounter() ); // 1 console.log( firstCounter() ); // 2 console.log( firstCounter() ); // 3 console.log( secondCounter() ); // 1 console.log( secondCounter() ); // 2 console.log( firstCounter() ); // 4
@jorgen5462
@jorgen5462 5 жыл бұрын
Юра, тему промисов бы поднять) Еще requestAnimationFrame.
@alenache1
@alenache1 2 жыл бұрын
я бы сказал так: "Замыкание - это снэпшот всех доступных fункции переменных в момент ее создания"
@user-eu5jy2hc4u
@user-eu5jy2hc4u 3 жыл бұрын
👍
@user-ee1xf7qm5d
@user-ee1xf7qm5d 4 жыл бұрын
господи, я не дабстеп слушать сюда зашел (звук на колонках), подубавьте басы
@user-zk5ok6wn2l
@user-zk5ok6wn2l 5 жыл бұрын
привет! выпусти урок по асинхронности пожалуйста! Ты же обещал!
@yurafedorenko1218
@yurafedorenko1218 5 жыл бұрын
я не обещал когда оно будет, но в этом году точно)
@unknown6535
@unknown6535 4 жыл бұрын
Можно сказать, что функция counter - это фабрика счётчиков, только порождает эта фабрика функции
@miloman1995s
@miloman1995s 4 жыл бұрын
Вот функция в функции сложнее даётся , че то видимо надо пересматривать
@MegaPupizoid
@MegaPupizoid Жыл бұрын
Что-то недогнал. Разные счетчики при вызове новой функции пытаются получить разные данные из одни и тех же переменных 🤔?
@nursultanmuhambetov8427
@nursultanmuhambetov8427 2 жыл бұрын
var же делает переменую глобальной?
@slavkapiyavka
@slavkapiyavka 2 жыл бұрын
да, но если переменная объявленная при помощи var лежит в функции (проще говоря, в блоке кода {}), то у этой переменной область видимости становится блочной, функциональной). а вообще используйте const :)
@H1roHamada
@H1roHamada 4 жыл бұрын
Можно ли сказать, что замыкание это функция внутри функции. Как я понял это один из вариантов ответа на вопрос: "Что такое замыкание?"
@kostyafrompiter
@kostyafrompiter 4 жыл бұрын
Я бы на собесе ответил так : замыкание - это вызов функции с помощью другой функции)))))
@kirillpodolinniy309
@kirillpodolinniy309 4 жыл бұрын
На дворе уже 20-й, а про асинхронность ни слова..)
@bladerunnerz12
@bladerunnerz12 3 жыл бұрын
Или так: const makeCounter = () => { let count = 0; const foo = () => count++; return foo; }; let counter = makeCounter(); let anothercounter = makeCounter(); console.log(counter()); // 0 console.log(counter()); // 1 console.log(counter()); // 2 console.log(anothercounter()); // 0
@azuresnake6301
@azuresnake6301 4 жыл бұрын
Никто так и не написал, что у вас в комментариях ошибка. При первом вызове она выдаст 0, а не 1. Потому что в коде используется не ++counter, a counter++
@victor-zz6xn
@victor-zz6xn 4 жыл бұрын
короче говоря, в джава скрипт замыкание это как в питоне локальные перемённые.
@jorgenUA
@jorgenUA 5 жыл бұрын
посмотрел время видео - захотел диз влепить, но решил глянуть...нормально объяснил, лаконично. Функцию стрелкА, конечно не трогал, но все гглавные аспекты объяснены. Спасибо.
@TinTaBraSS777
@TinTaBraSS777 4 жыл бұрын
что нельзя просто сказать что переменная а читаема функцией но не изменяема а переменная б читаема и изменяема функцией но не видима другими функциями и програмой !?
@3bbiani
@3bbiani 5 жыл бұрын
Несколько часов пытаюсь понять эту тему, почему в теме о замыкании на общеизвестном сайте learn.javascript.ru в примере со счетчиками нигде не объясняется, почему счетчик в случае замыкания увеличивается. Решил посмотреть видео, чтобы услышать альтернативное видение. Как результат: в данном видео тупо рассказывают сокращенную версию статьи вышеуказанного сайта, код совпадает до мельчайших подробностей, прям выдран с сайта. При этом никто даже не пытается объяснить, почему увеличивается счетчик. Так не делается. Тема не раскрыта, дизлайк.
@user-ei9bm8fq4u
@user-ei9bm8fq4u 5 жыл бұрын
У меня наоборот. Читал на лерн.джавасрипт.ру и ничего не понял (или только частично) а вот это видео внесло полную ясность.
@3bbiani
@3bbiani 5 жыл бұрын
@@user-ei9bm8fq4u это конечно хорошо) так почему же увеличивается счётчик, расскажи нам всем) я например уже понял, и конечно отпишусь, если непонятно кому-то)
@3bbiani
@3bbiani 5 жыл бұрын
@Alex Reyder задайте конкретный вопрос, иначе мне не ясно, что вам непонятно
@3bbiani
@3bbiani 5 жыл бұрын
@Alex Reyder Замыкание в моем понимании - это явление, сущность, проявляющаяся, когда функция (назовем её «внешней») возвращает в качестве значения другую функцию («внутреннюю»). В таком случая внутренняя имеет доступ к внешней по области видимости, даже после того, как внешняя прекратилась. Это говорит о том, что замыкание может запоминать и получать доступ к чтению и изменению переменных и аргументов своей внешней функции, даже после того, как та прекратит выполнение. Если на пальцах, почему увеличивается счетчик: в момент вызова (исполнения) функции Counter создается объект Lexical Environment и возвращается внутренняя функция, которая записывается в переменную counter. В этой внутренней функции есть скрытое свойство [[Scope]], которое указывает на этот объект LE внешней функции. Т.к. мы эту переменную можем использовать в любой момент, сборщик мусора не удаляет LE внешней функции. При этом доступ к этому объекту остается только у внутренней функции. Мы можем читать и изменять переменные в этом объекте, что мы и делаем. При этом, учитывая, что это объект, при чтении мы всегда будем получать текущее значение. Вот и всё)
@youxxxgun9001
@youxxxgun9001 4 жыл бұрын
Ты, блять, слепой? После переменной стоит ++ т.е увеличивается на 1.
@user-xz1nb2ks1h
@user-xz1nb2ks1h 2 жыл бұрын
ааааа
@dimitriy1861
@dimitriy1861 4 жыл бұрын
Да ни хрена не понятно....
@WikSlayer
@WikSlayer 5 жыл бұрын
Ну зачем делать ещё одно стандартное видео по данной теме, которое повторяет информацию десятков других источников. Ничего нового. Почему бы не рассказать зачем именно нужны замыкания? Нет, не то, что было показано в видео, а действительно зачем они нужны, в первичной их сути. Почему ни слова о фунарг проблеме? Такое чувство, что автор хапнул базовых знаний и так и остался на этом видении картины замыканий. И видео лишь для галочки на канале. Буду рад ответу и объяснению, почему видео не касается этих вопросов. Если ответа не последует, тогда будет ясно, что вы не особо хорошо относитесь к своей аудитории, игнорируя подобные вопросы.
@yurafedorenko1218
@yurafedorenko1218 5 жыл бұрын
:D
@WikSlayer
@WikSlayer 5 жыл бұрын
Юрий, ну я серьезно, почему? Это не троллинг, не попытка задеть и прочее.
@WikSlayer
@WikSlayer 5 жыл бұрын
В общем, ответа не будет?
@yurafedorenko1218
@yurafedorenko1218 5 жыл бұрын
Виктор Данилов я понимаю, что это не тролинг, но я правда не знаю что ответить( ваш вопрос это претензия к автору школьного учебника по математике, что он плохо раскрыл тему интегралов. Я признаю - плохо. Но это просто такой формат, я пытаюсь простыми словами объяснять вещи так, чтоб это было понятно без специальной подготовки. А ваши пассажи насчет моего отношения к аудитории - нелепые. Мое отношение к аудитории в том, что я делаю. И вы как человек который и сам что-то снимал для ютуба можете оценить сколько сил и ресурсов здесь вложено в продакшн. И вот на этом фоне появляется человек в комментах который пишет несколько предложений и резюмирует: если не ответите то вам на всех плевать. Не надо так.
@WikSlayer
@WikSlayer 5 жыл бұрын
Очень рад, что вы ответили. Да эти все фразы были только для того, чтобы поднять важность моего ожидания ответа. Просто предположил, что это очередной канал, в котором на комментарии не отвечают, а ответа мне очень хотелось. Извините, если что. Хорошо, условились, что это видео для начинающих. А будет ли что-то для продвинутого уровня в будущем? Просто контента для начинающих тонны просто уже. Зачем снимать то, что уже есть. Это ведь основным принципом должно быть. Просто интересно, задаётесь ли вы вопросом о том что "я только что снял то, что уже есть. Почему моё объяснение лучше, чем у других? В чём оригинальность моего видео?" И вложения сил, в первую очередь, понимаю и уважаю. Но просто если опять мусолить тему замыканий на начинающем уровне, то хотя бы сделать это.. ну как-то оригинально, что ли. Да хоть пример со счётчиком этот взять. Ну было ведь, и причём не у одного объясняющего. Поймите, я очень-очень редко оставляю комментарии, но в этот раз решил написать, чтобы просто узнать ваше мнение о вашей осознанности касательно вопроса "Зачем я создаю то, что уже есть итак? В чём ценность этого?"
@fresonn
@fresonn 5 жыл бұрын
Народ, за что вы лижите автору? Он не раскрыл замыкания в js, он не сказал как работают функции, почему они являются объектами и тд. Он тупо процитировал learn.javascript.ru. Они даже не удосужились привести нормальный пример. Ужас..
@yurafedorenko1218
@yurafedorenko1218 5 жыл бұрын
Vladislav Shevlyakov это такой формат когда берется тема и я пытаюсь ее объяснить по-простому, вот и всё
@fresonn
@fresonn 5 жыл бұрын
Yura Fedoreko, ну да, а потом приходят «по-простому» такие на роботу, а там их ...
@yurafedorenko1218
@yurafedorenko1218 5 жыл бұрын
ну по такой логике js нужно начинать учить с ассемблера, я как бы не против, но моя позиция такая: лучше разобраться в чем-то по книжке "для чайников" чем прочитать кнута и ничего не понять
@fresonn
@fresonn 5 жыл бұрын
Лучше научится водить в gta, чем идти в автошколу и ничего не понять! И книги Кнута не совсем тут уместны 🙃
@funnyepictrailers4107
@funnyepictrailers4107 5 жыл бұрын
Привет, не мог бы подсказать с чего начать новичку, что бы поглубже вникнуть в работу javascript и его ньюансы... Сам сейчас прохожу гайд от MDN, а после планирую почитать Фленегана
@vkgorodok
@vkgorodok 4 жыл бұрын
Слабенькое объяснение. Почти 7 минут бреда.. Кто хочет понять замыкание смотрите - kzbin.info/www/bejne/ppLLgGiOn9OZgqM
Замыкания в JavaScript
18:50
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 52 М.
Замыкания в JavaScript с примерами. Фундаментальный JavaScript
22:39
[Vowel]물고기는 물에서 살아야 해🐟🤣Fish have to live in the water #funny
00:53
ISSEI funny story😂😂😂Strange World | Magic Lips💋
00:36
ISSEI / いっせい
Рет қаралды 140 МЛН
Ауылға қайт! | АСАУ | 2 серия
33:16
Qarapaıym Qanal
Рет қаралды 1,1 МЛН
JavaScript: Callstack и Event Loop
10:37
Hillel IT School
Рет қаралды 17 М.
Что такое и как работают замыкания (closures) в JavaScript?
13:55
Что такое ЗАМЫКАНИЯ в JavaScript? Как они работают? Разберём на примерах
35:49
Эльбрус Буткемп: школа программирования
Рет қаралды 3,5 М.
Лексическое окружение. JavaScript
8:25
За что ненавидят Javascript?
14:05
Senior Software Vlogger
Рет қаралды 78 М.
Что такое рекурсия. Фундаментальный JavaScript
20:32
Михаил Непомнящий
Рет қаралды 21 М.
[Vowel]물고기는 물에서 살아야 해🐟🤣Fish have to live in the water #funny
00:53