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

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ก.ย. 2024
  • Замыкания - одна из самых мощных особенностей 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

  • @anastasiazaytseva6922
    @anastasiazaytseva6922 5 ปีที่แล้ว +42

    Такие видюшки помогают быстро освежить знания перед собеседованиями) жаль что их так мало

  • @liveinenduro2647
    @liveinenduro2647 6 ปีที่แล้ว +87

    так объяснял что сам понял - тру стори

  • @wayfarerofuntroddenpaths7571
    @wayfarerofuntroddenpaths7571 6 ปีที่แล้ว +31

    Спасибо Юра за твои хоть и не большие, но все таки понятные изложения. Ждем-с новые твои выпуски по JS.

  • @vladyslavanakonechna7693
    @vladyslavanakonechna7693 5 ปีที่แล้ว +5

    Это гениальное объяснение замыканий! И правда легонько и не навячиво. Спасибо!

  • @АндрейХантя-с3о
    @АндрейХантя-с3о 5 ปีที่แล้ว +8

    уже дня 3 пытаюсь разобраться в этой теме, что зачем и как, а тут посмотрел данное видео, и за 15 мин понял что оно такое)) спасибо автору!) лайк однозначно!)

  • @Sefian
    @Sefian 2 ปีที่แล้ว +1

    Спасибо, все гораздо проще чем мне казалось. Главное что помогли поменять, так это способы применения.

    • @HillelITSchool
      @HillelITSchool  2 ปีที่แล้ว

      Раді, що були корисні 💙

  • @AlexeyTo
    @AlexeyTo 6 ปีที่แล้ว +38

    Очень просто и понятно объясняется, отличное видео!

  • @SergeSchekhovtsov
    @SergeSchekhovtsov 2 ปีที่แล้ว +1

    Великолепное объяснение. Закрыл пробелы и всё понял с первого раза.

  • @Dozortsev
    @Dozortsev 4 ปีที่แล้ว +1

    Юра, ты крут! Спасибо за видео

  • @MrCter
    @MrCter 6 ปีที่แล้ว +3

    Юра, продолжайте, умоляю ))

  • @Bunny_Love
    @Bunny_Love 4 ปีที่แล้ว

    Мне пришлось несколько раз внимательно прослушать - но в итоге я все поняла! Огромное спасибо!

  • @aktotuttttt
    @aktotuttttt 4 ปีที่แล้ว

    И заслуживает лайка бро. Как же круто рассказал. Поклон, низкий, бью челом

  • @ДенисНиколаев-я5ц
    @ДенисНиколаев-я5ц 6 ปีที่แล้ว +1

    Спасибо Родной!!!! Ты лучший:))))

  • @АлександрНастыченко-с9с
    @АлександрНастыченко-с9с 2 ปีที่แล้ว

    Очень хорошее видео! Благодарю)

  • @ЕвгенийКовалёв-к8ы
    @ЕвгенийКовалёв-к8ы 3 ปีที่แล้ว

    Редко пишу комментарии, но за такое хорошее видео, грех не написать!) Спасибо вам.

  • @disposables72
    @disposables72 4 ปีที่แล้ว +1

    Подпишусь, может побольше будет таких мини-ликбезов. Перед сном самое то)))

  • @dalaysalchak5073
    @dalaysalchak5073 5 ปีที่แล้ว

    Толково объяснил. Спасибо!

  • @40par
    @40par 4 ปีที่แล้ว +1

    Спасибо, только теперь разобрался

  • @akkelaforest779
    @akkelaforest779 2 ปีที่แล้ว

    Спасибо, очень доступно обьяснили)

  • @oleksiipetrenko3824
    @oleksiipetrenko3824 5 ปีที่แล้ว +20

    Юра, где же видео про асинхронность?

  • @vitalikgorohkov1896
    @vitalikgorohkov1896 2 ปีที่แล้ว

    На этом видео понял тему! спасибо за помощь

    • @HillelITSchool
      @HillelITSchool  2 ปีที่แล้ว

      Рады, что были полезны )

  • @АрсенийПелех
    @АрсенийПелех 4 ปีที่แล้ว

    Просто супер, спасибо большое)

  • @serggey75
    @serggey75 2 ปีที่แล้ว

    вот только теперь я понял замыкания) спасибо)

    • @HillelITSchool
      @HillelITSchool  2 ปีที่แล้ว

      Раді, що стали в нагоді!

  • @шмяка
    @шмяка 6 ปีที่แล้ว +1

    Я уже раз 10 посмотрел видео про this и прототипы - обожаю его. И вот подъехал потенциальный новый фаворит.)

    • @fonharry9086
      @fonharry9086 6 ปีที่แล้ว

      Это какое?

    • @шмяка
      @шмяка 6 ปีที่แล้ว

      th-cam.com/video/0vs6WkNyzec/w-d-xo.html&list=LLeXZ31bUXjUlXgMibPcrkCw&index=18

    • @fonharry9086
      @fonharry9086 6 ปีที่แล้ว

      благодарю

  • @YaroslavEx
    @YaroslavEx 2 ปีที่แล้ว

    дякую, реально допомогло!

    • @HillelITSchool
      @HillelITSchool  2 ปีที่แล้ว +1

      Раді, що були корисні!

  • @coltesun457
    @coltesun457 5 ปีที่แล้ว

    Спасибо! Очень доступно объяснил)

  • @dmitrijponkin
    @dmitrijponkin 6 ปีที่แล้ว

    Круто!
    Спасибо за Ваш труд))

  • @ЯнаПронько-ы7ъ
    @ЯнаПронько-ы7ъ 2 ปีที่แล้ว

    Вроде и до этого понятно было, но как послушала, поняла, что только сейчас и поняла))))😁

  • @XanjaevRodmam
    @XanjaevRodmam 4 ปีที่แล้ว

    Бро. Спасибо Бро. Ты настроящий Бро, Бро

  • @DmitryDolganov
    @DmitryDolganov 3 ปีที่แล้ว

    Спасибо!

  • @artemshulga7316
    @artemshulga7316 5 ปีที่แล้ว +7

    Спасибо. Прочел в книге Выразительный js о замыканиях но не понял, а здесь все очень понятно.

    • @faizulla5838
      @faizulla5838 3 ปีที่แล้ว +1

      почитай снова, здесь он путает.... один палец с другим.

  • @vladvoloshenko5701
    @vladvoloshenko5701 2 ปีที่แล้ว

    спасибо)

  • @Андрей-й9ц6я
    @Андрей-й9ц6я 6 ปีที่แล้ว +8

    Можно этот пример переписать в одну строку const Counter = (count = 0) => () => ++count, но тогда не так понятно конечно, без привычки.

  • @yuriiserdiuk3918
    @yuriiserdiuk3918 5 ปีที่แล้ว

    Дякую за відео , все сподобалось ))

  • @alenache1
    @alenache1 2 ปีที่แล้ว

    я бы сказал так: "Замыкание - это снэпшот всех доступных fункции переменных в момент ее создания"

  • @dmitryparshin4204
    @dmitryparshin4204 5 ปีที่แล้ว +2

    какой же милый лектор

  • @djoniKage
    @djoniKage 5 ปีที่แล้ว +8

    А я думал замыкание это что то космическое. Видите от препода многое зависить. Многие просто не умеют передавать свои знания и еще больше запутывает студента. А некоторые вот так просто человеческим языком доступно делают.

  • @alexbliznec
    @alexbliznec 5 ปีที่แล้ว +27

    2019 на дворе, а видео про асинхронность так нет(((

    • @CozyAvocados
      @CozyAvocados 4 ปีที่แล้ว +2

      2020 и тоже нет(

    • @St3rnhunt3r
      @St3rnhunt3r 4 ปีที่แล้ว

      @@CozyAvocados и в 2021 не будет(

    • @DmitryDolganov
      @DmitryDolganov 3 ปีที่แล้ว

      Уже 2 января 2021!
      Ишо нЭт! )))

  • @mariapokrasa2966
    @mariapokrasa2966 6 ปีที่แล้ว +3

    Лайк не глядя 🤣 Лучший учитель 👍👍👍👍

  • @ДенисФурман-б3ъ
    @ДенисФурман-б3ъ 5 ปีที่แล้ว +2

    Спасибо большое !! Есть просьба сделать серию уроков ES6-7

  • @user-yl3vj9ms3c
    @user-yl3vj9ms3c 4 ปีที่แล้ว +1

    Лексическое окружение функции это не контекст того, где она объявлена. Согласно спецификации, лексическое окружение функции создается во время выполнения этой функции, а замыкание образовывается в момент создания объекта функции, при чём если создавать объект функции с помощью синтаксиса 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 ปีที่แล้ว

      да, все так, там имелось ввиду внешнее лексическое окружение, вообще эти термины часто путают, я даже делал вот тут разбор - th-cam.com/video/HsXKiKNdeTI/w-d-xo.html (ссылка с тайм-меткой) но это видео было бы сильно перегруженным если бы прямо в нем это разобрать(

    • @user-yl3vj9ms3c
      @user-yl3vj9ms3c 4 ปีที่แล้ว +1

      @@yurafedorenko1218 Интересное видео, хотя говоря про способы вызова функций в контексте this, Вы не упомянули о стрелочных функциях, но это не столь существенно. Хотя выходит, что this зависит не только от способа вызова функции но и от ее типа.
      Относительно нынешнего видео, мне кажется, что прежде всего надо говорить о том, что в среде разработчиков JS существуют три определения термина "замыкание". Первое, самое верное, которое соответствует определению для всех языков программирования - замыкание это сочетание функции и её внешнего лексического окружения. Второе - это сочетание функции и свободных переменных, которые она использует. Третье - это сочетание функции и изолированных переменных, которые она использует, при чем функция может использовать изолированные переменные из нескольких лексических окружений. Иногда замыканием называют только одну из составляющих определения, то есть или саму функцию, или сами переменные или лексическое окружение.

    • @user-yl3vj9ms3c
      @user-yl3vj9ms3c 4 ปีที่แล้ว

      Что касается первого определения, еще существует немного другая версия - замыкание это сочетание функции и её родительского лексического окружения, то есть того, в котором она была определена, но тут появляется проблема в случае синтаксиса new Function. К тому же коректнее говорить о лексическом окружении кода, в котором она была определена.

    • @user-yl3vj9ms3c
      @user-yl3vj9ms3c 4 ปีที่แล้ว

      Теоретически второе определение тоже соответсвует определению замыкания для всех языков программирования. Можно сказать, что первое более абстрактное и основанное на спецификации, а второе более простое и основанное на практике, при чём они отличаются друг от друга, ведь свободные переменные могут находиться не только во внешнем лексическом окружении.

    • @user-yl3vj9ms3c
      @user-yl3vj9ms3c 4 ปีที่แล้ว +1

      Я еще раз проверил разные определения этого термина, относительно других языков и в целом. Получается, что второе определение, то есть "сочетание функции и свободных переменных, которые она использует" и есть самым правильным. Возвращаясь к видео, то что Вы имели в виду это конечно хорошо знать, но Вы ведь сказали другое, значит ошиблись, то есть вводите людей в заблуждение. Надо бы это исправить, а то получается как-то нехорошо.
      Тут вот еще одно видео live.ithillel.ua/javascript-funkcii-oblasti-vidimosti-zamykanie от вашей школы с другой версией определения, насколько я понял основанной на том, что показывает браузер.

  • @ssurrokk
    @ssurrokk 3 ปีที่แล้ว

    🔥

  • @АртемКолот-е3к
    @АртемКолот-е3к 3 ปีที่แล้ว

    Пример с счетчиком очень полезный

  • @whatifiwant
    @whatifiwant 4 ปีที่แล้ว +2

    2020((( а мы ещё ждём!)))

  • @grimkasad4183
    @grimkasad4183 3 ปีที่แล้ว

    Фантастика, нарешті)

  • @saidvalc2177
    @saidvalc2177 5 ปีที่แล้ว +18

    мне не перезвонили

  • @andreyzinovjev3920
    @andreyzinovjev3920 4 ปีที่แล้ว +2

    Бен Аффлек в JS))

  • @PacoOfficial
    @PacoOfficial 6 ปีที่แล้ว +1

    супер

  • @alenache1
    @alenache1 2 ปีที่แล้ว

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

  • @divocean4085
    @divocean4085 5 ปีที่แล้ว +2

    Я вот чего не понял только. Мы вызываем ту анонимную функцию, которая возвращает увеличенное значение переменной 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

  • @Алексей-и8ю7ю
    @Алексей-и8ю7ю 3 ปีที่แล้ว

    👍

  • @santiagozarpado1145
    @santiagozarpado1145 4 ปีที่แล้ว +1

    замыкания - интересная и иногда полезная техника, но никак не необходимая
    без них и туда и сюда

  • @aleksandrpolevyk9572
    @aleksandrpolevyk9572 4 ปีที่แล้ว

    Объясняешь просто супер. Музыку приложите в описание.

  • @osidpgipsoe
    @osidpgipsoe 5 ปีที่แล้ว +6

    господи, я не дабстеп слушать сюда зашел (звук на колонках), подубавьте басы

  • @MegaPupizoid
    @MegaPupizoid ปีที่แล้ว

    Что-то недогнал. Разные счетчики при вызове новой функции пытаются получить разные данные из одни и тех же переменных 🤔?

  • @unknown6535
    @unknown6535 4 ปีที่แล้ว

    Можно сказать, что функция counter - это фабрика счётчиков, только порождает эта фабрика функции

  • @azuresnake6301
    @azuresnake6301 4 ปีที่แล้ว +1

    Никто так и не написал, что у вас в комментариях ошибка. При первом вызове она выдаст 0, а не 1. Потому что в коде используется не ++counter, a counter++

  • @КурашовЕвгений-н3ю
    @КурашовЕвгений-н3ю 5 ปีที่แล้ว +1

    привет! выпусти урок по асинхронности пожалуйста! Ты же обещал!

    • @yurafedorenko1218
      @yurafedorenko1218 5 ปีที่แล้ว +1

      я не обещал когда оно будет, но в этом году точно)

  • @kirillpodolinniy309
    @kirillpodolinniy309 4 ปีที่แล้ว +2

    На дворе уже 20-й, а про асинхронность ни слова..)

  • @jorgen5462
    @jorgen5462 6 ปีที่แล้ว

    Юра, тему промисов бы поднять) Еще requestAnimationFrame.

  • @yaroslavzef7267
    @yaroslavzef7267 4 ปีที่แล้ว

    Юра, а как там дела с асинхронностью обстоят?

  • @miloman1995s
    @miloman1995s 4 ปีที่แล้ว

    Вот функция в функции сложнее даётся , че то видимо надо пересматривать

  • @nursultanmuhambetov8427
    @nursultanmuhambetov8427 2 ปีที่แล้ว

    var же делает переменую глобальной?

    • @slavkapiyavka
      @slavkapiyavka 2 ปีที่แล้ว

      да, но если переменная объявленная при помощи var лежит в функции (проще говоря, в блоке кода {}), то у этой переменной область видимости становится блочной, функциональной). а вообще используйте const :)

  • @bladerunnerz12
    @bladerunnerz12 4 ปีที่แล้ว

    Или так:
    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

  • @H1roHamada
    @H1roHamada 4 ปีที่แล้ว

    Можно ли сказать, что замыкание это функция внутри функции. Как я понял это один из вариантов ответа на вопрос: "Что такое замыкание?"

    • @kostyafrompiter
      @kostyafrompiter 4 ปีที่แล้ว

      Я бы на собесе ответил так : замыкание - это вызов функции с помощью другой функции)))))

  • @3bbiani
    @3bbiani 5 ปีที่แล้ว +3

    Несколько часов пытаюсь понять эту тему, почему в теме о замыкании на общеизвестном сайте learn.javascript.ru в примере со счетчиками нигде не объясняется, почему счетчик в случае замыкания увеличивается. Решил посмотреть видео, чтобы услышать альтернативное видение. Как результат: в данном видео тупо рассказывают сокращенную версию статьи вышеуказанного сайта, код совпадает до мельчайших подробностей, прям выдран с сайта. При этом никто даже не пытается объяснить, почему увеличивается счетчик. Так не делается. Тема не раскрыта, дизлайк.

    • @ДомДляТебя
      @ДомДляТебя 5 ปีที่แล้ว +1

      У меня наоборот. Читал на лерн.джавасрипт.ру и ничего не понял (или только частично) а вот это видео внесло полную ясность.

    • @3bbiani
      @3bbiani 5 ปีที่แล้ว

      @@ДомДляТебя это конечно хорошо) так почему же увеличивается счётчик, расскажи нам всем) я например уже понял, и конечно отпишусь, если непонятно кому-то)

    • @3bbiani
      @3bbiani 5 ปีที่แล้ว

      @Alex Reyder задайте конкретный вопрос, иначе мне не ясно, что вам непонятно

    • @3bbiani
      @3bbiani 5 ปีที่แล้ว +6

      @Alex Reyder Замыкание в моем понимании - это явление, сущность, проявляющаяся, когда функция (назовем её «внешней») возвращает в качестве значения другую функцию («внутреннюю»). В таком случая внутренняя имеет доступ к внешней по области видимости, даже после того, как внешняя прекратилась. Это говорит о том, что замыкание может запоминать и получать доступ к чтению и изменению переменных и аргументов своей внешней функции, даже после того, как та прекратит выполнение. Если на пальцах, почему увеличивается счетчик: в момент вызова (исполнения) функции Counter создается объект Lexical Environment и возвращается внутренняя функция, которая записывается в переменную counter. В этой внутренней функции есть скрытое свойство [[Scope]], которое указывает на этот объект LE внешней функции. Т.к. мы эту переменную можем использовать в любой момент, сборщик мусора не удаляет LE внешней функции. При этом доступ к этому объекту остается только у внутренней функции. Мы можем читать и изменять переменные в этом объекте, что мы и делаем. При этом, учитывая, что это объект, при чтении мы всегда будем получать текущее значение. Вот и всё)

    • @youxxxgun9001
      @youxxxgun9001 5 ปีที่แล้ว

      Ты, блять, слепой? После переменной стоит ++ т.е увеличивается на 1.

  • @TinTaBraSS777
    @TinTaBraSS777 4 ปีที่แล้ว

    что нельзя просто сказать что переменная а читаема функцией но не изменяема а переменная б читаема и изменяема функцией но не видима другими функциями и програмой !?

  • @victor-zz6xn
    @victor-zz6xn 4 ปีที่แล้ว

    короче говоря, в джава скрипт замыкание это как в питоне локальные перемённые.

  • @jorgenUA
    @jorgenUA 6 ปีที่แล้ว

    посмотрел время видео - захотел диз влепить, но решил глянуть...нормально объяснил, лаконично. Функцию стрелкА, конечно не трогал, но все гглавные аспекты объяснены. Спасибо.

  • @Андрей-ь6й8н
    @Андрей-ь6й8н 3 ปีที่แล้ว

    ааааа

  • @vkgorodok
    @vkgorodok 4 ปีที่แล้ว

    Слабенькое объяснение. Почти 7 минут бреда.. Кто хочет понять замыкание смотрите - th-cam.com/video/pahO5XjnfLA/w-d-xo.html

  • @WikSlayer
    @WikSlayer 6 ปีที่แล้ว +5

    Ну зачем делать ещё одно стандартное видео по данной теме, которое повторяет информацию десятков других источников. Ничего нового. Почему бы не рассказать зачем именно нужны замыкания? Нет, не то, что было показано в видео, а действительно зачем они нужны, в первичной их сути. Почему ни слова о фунарг проблеме? Такое чувство, что автор хапнул базовых знаний и так и остался на этом видении картины замыканий. И видео лишь для галочки на канале. Буду рад ответу и объяснению, почему видео не касается этих вопросов. Если ответа не последует, тогда будет ясно, что вы не особо хорошо относитесь к своей аудитории, игнорируя подобные вопросы.

    • @yurafedorenko1218
      @yurafedorenko1218 6 ปีที่แล้ว

      :D

    • @WikSlayer
      @WikSlayer 6 ปีที่แล้ว

      Юрий, ну я серьезно, почему? Это не троллинг, не попытка задеть и прочее.

    • @WikSlayer
      @WikSlayer 6 ปีที่แล้ว

      В общем, ответа не будет?

    • @yurafedorenko1218
      @yurafedorenko1218 6 ปีที่แล้ว +7

      Виктор Данилов я понимаю, что это не тролинг, но я правда не знаю что ответить( ваш вопрос это претензия к автору школьного учебника по математике, что он плохо раскрыл тему интегралов. Я признаю - плохо. Но это просто такой формат, я пытаюсь простыми словами объяснять вещи так, чтоб это было понятно без специальной подготовки.
      А ваши пассажи насчет моего отношения к аудитории - нелепые. Мое отношение к аудитории в том, что я делаю. И вы как человек который и сам что-то снимал для ютуба можете оценить сколько сил и ресурсов здесь вложено в продакшн. И вот на этом фоне появляется человек в комментах который пишет несколько предложений и резюмирует: если не ответите то вам на всех плевать. Не надо так.

    • @WikSlayer
      @WikSlayer 6 ปีที่แล้ว

      Очень рад, что вы ответили. Да эти все фразы были только для того, чтобы поднять важность моего ожидания ответа. Просто предположил, что это очередной канал, в котором на комментарии не отвечают, а ответа мне очень хотелось. Извините, если что. Хорошо, условились, что это видео для начинающих. А будет ли что-то для продвинутого уровня в будущем? Просто контента для начинающих тонны просто уже. Зачем снимать то, что уже есть. Это ведь основным принципом должно быть. Просто интересно, задаётесь ли вы вопросом о том что "я только что снял то, что уже есть. Почему моё объяснение лучше, чем у других? В чём оригинальность моего видео?" И вложения сил, в первую очередь, понимаю и уважаю. Но просто если опять мусолить тему замыканий на начинающем уровне, то хотя бы сделать это.. ну как-то оригинально, что ли. Да хоть пример со счётчиком этот взять. Ну было ведь, и причём не у одного объясняющего. Поймите, я очень-очень редко оставляю комментарии, но в этот раз решил написать, чтобы просто узнать ваше мнение о вашей осознанности касательно вопроса "Зачем я создаю то, что уже есть итак? В чём ценность этого?"

  • @dimitriy1861
    @dimitriy1861 4 ปีที่แล้ว +1

    Да ни хрена не понятно....

  • @fresonn
    @fresonn 6 ปีที่แล้ว +7

    Народ, за что вы лижите автору? Он не раскрыл замыкания в js, он не сказал как работают функции, почему они являются объектами и тд. Он тупо процитировал learn.javascript.ru. Они даже не удосужились привести нормальный пример. Ужас..

    • @yurafedorenko1218
      @yurafedorenko1218 6 ปีที่แล้ว

      Vladislav Shevlyakov это такой формат когда берется тема и я пытаюсь ее объяснить по-простому, вот и всё

    • @fresonn
      @fresonn 6 ปีที่แล้ว +2

      Yura Fedoreko, ну да, а потом приходят «по-простому» такие на роботу, а там их ...

    • @yurafedorenko1218
      @yurafedorenko1218 6 ปีที่แล้ว +6

      ну по такой логике js нужно начинать учить с ассемблера, я как бы не против, но моя позиция такая: лучше разобраться в чем-то по книжке "для чайников" чем прочитать кнута и ничего не понять

    • @fresonn
      @fresonn 6 ปีที่แล้ว

      Лучше научится водить в gta, чем идти в автошколу и ничего не понять! И книги Кнута не совсем тут уместны 🙃

    • @funnyepictrailers4107
      @funnyepictrailers4107 5 ปีที่แล้ว

      Привет, не мог бы подсказать с чего начать новичку, что бы поглубже вникнуть в работу javascript и его ньюансы... Сам сейчас прохожу гайд от MDN, а после планирую почитать Фленегана

  • @Hannah-ly6ff
    @Hannah-ly6ff 3 ปีที่แล้ว

    спасибо!!