Колбэки и функции высшего порядка. Фундаментальный JavaScript

Sdílet
Vložit
  • čas přidán 12. 10. 2020
  • Что такое функция высшего порядка и что такое колбэк, он же функция обратного вызова. Разбираемся на простых примерах и пытаемся ухватить саму идею.
    Колбэки - это функции, которые передаются другим функциям или методам в качестве аргумента.
    Функции высшего порядка - это функции, которые либо принимают другую функцию в качестве аргумента, либо возвращают новую функцию в результате вызова.
    _ _
    Мои курсы по вебу с купонами:
    ✅ mishanep.com/
    📢 Заказать консультацию можно здесь pcgramota.com/courses/konsult...

Komentáře • 72

  • @user-cc1xo4dl8r
    @user-cc1xo4dl8r Před 2 měsíci +2

    Если не знаете что такое коллбеки, то это лучшее видео. Спасибо вам Михаил!

  • @kirafilya
    @kirafilya Před 5 měsíci +4

    Господи, это лучшее объяснение колбэка, которое я видела! Спасибо!

  • @user-bm8vv7nl3m
    @user-bm8vv7nl3m Před 2 měsíci +2

    Спасибо за понятное объяснение! Почему везде так сложно объясняют, с такими заумными для меня примерами и терминами? Ну да, я чайник. Но если бы я понимала их термины, я бы и про callback уже знала. и не рылась в инете в поисках информации. Еще раз спасибо за то, что простым языком объяснили суть callback.

  • @yurashtefanko1603
    @yurashtefanko1603 Před 3 lety +27

    Спасибо Вам. Вы единственный человек, который всё понятно объяснил. 👌👌👌

  • @maratfaizer
    @maratfaizer Před rokem +1

    главное, я применял в работе hoc - но только сейчас понял, что это они и были)
    и еще реально интересное замечание, что методы работы с массивами по сути тоже hoc

  • @user-vg5ln5tg9d
    @user-vg5ln5tg9d Před rokem +1

    Коротко и яснооооооо!

  • @agrbear
    @agrbear Před 2 lety +1

    Комент в поддержку канала 🙏

  • @ginhop1057
    @ginhop1057 Před rokem +2

    Хорошее объяснение👍

  • @vitalygaraev8093
    @vitalygaraev8093 Před rokem +3

    Неудержался что бы не написать комментарий. Очень ясный ум, ясное понимание темы и такое же прозрачное объяснение. Жаль, что больше ничего не публикуете. Спасибо!

    • @mishanep
      @mishanep  Před rokem +1

      Спасибо за похвалу.
      Видео публикую почти каждую неделю. Темы разные. На этой неделе по JS. Только плейлист другой.

  • @alfa13135
    @alfa13135 Před rokem +2

    Хорошо , когда обьясняют постепенно по пунктам.

  • @manzhosoleg
    @manzhosoleg Před rokem +1

    просто и точно про сложные вещи , спасибо

  • @Albert_Hall
    @Albert_Hall Před rokem +2

    Все прекрасно!

  • @aliana4400
    @aliana4400 Před 2 lety +6

    Михаил, спасибо за этот плейлист)) очень нравится ваша манера рассказывать просто и точно про сложные для меня вещи)

  • @user-ec1vt8kq9v
    @user-ec1vt8kq9v Před rokem +1

    Гениально! У вас талант объяснять

  • @profuter
    @profuter Před 3 měsíci

    Наконец-то простым языком объяснили и я понял, что же такое колбэк :)

  • @RewCSharp
    @RewCSharp Před 4 měsíci

    Спасибо за урок!

  • @mavldr
    @mavldr Před rokem +1

    Спасибо за видео ❤

  • @Dismas_43
    @Dismas_43 Před 7 měsíci

    Круто, спасибо, все очень понятно!

  • @user-kp5rg6zs8d
    @user-kp5rg6zs8d Před rokem +2

    Михаил, спасибо большое Вам! Это тот курс, который мне был необходим. После него намного легче стало формировать логику в решении задач. Круто!

  • @iakivpekarskyi1631
    @iakivpekarskyi1631 Před rokem +1

    Благодарю! Очень круто объяснили!!!

  • @AGM140580
    @AGM140580 Před 2 lety +1

    Большое спасибо!

  • @AchtungBaby-io7zl
    @AchtungBaby-io7zl Před rokem

    вначале был реализован метод map возвращающий измененный массив) очень крутое и логичное объяснение! спасибо!

  • @GEO-le5ft
    @GEO-le5ft Před 2 lety +1

    отл урок. Доходчиво обьясняешь. Спасибо.

  • @artyrdanilov2791
    @artyrdanilov2791 Před rokem +1

    Отличное видео ! Многое прояснило !!!

  • @sergeyzatsepin513
    @sergeyzatsepin513 Před 2 lety +1

    Спасибо за урок

  • @ihorlevit5369
    @ihorlevit5369 Před 2 lety +2

    Спасибо за обьяснение. Кстати первые две функции были примером "Чистых функций". Так что видео охватывает тему чистых функций и функций высшего порядка

  • @user-tt5uf9nm5j
    @user-tt5uf9nm5j Před 2 lety +1

    все сразу стало так понятно, спасибо!!

  • @AL-zg5ff
    @AL-zg5ff Před 2 lety +1

    Зашел после книги "Выразительный Javascript " 3 издание. Два дня пытался вдумчиво прочитать что же там написано в главе про функции высшего порядка. В итоге за 14 минут объяснили здесь. Спасибо огромное!

  • @MrUnknownman1986
    @MrUnknownman1986 Před 3 lety +1

    Отличное объяснение !

  • @Ormusic071
    @Ormusic071 Před 3 lety +1

    Прекрасно объяснили, спасибо большое!

  • @miliba9485
    @miliba9485 Před 3 lety +1

    объяснение прекрасное!

  • @ArtemSlotin
    @ArtemSlotin Před rokem +1

    Спасибо. Очень ясно и понятно обьясняете!

  • @user-ko7cm1te4l
    @user-ko7cm1te4l Před 8 měsíci

    Спасибо !

  • @gorbulevsv
    @gorbulevsv Před rokem

    Круто!

  • @Hakanai2022
    @Hakanai2022 Před 9 měsíci +1

    const myArr = [2, 3, 4];
    function elements(el) {
    return el * 2;
    }
    console.log(myArr.map(elements));
    вот этот код тоже будет считаться как колбэк функция? Как я понял метод тоже функция и я передаю функцию "elements" как аргумент в метод .map()

  • @shyma_grasious
    @shyma_grasious Před 3 lety +1

    О боги, спасибо за такого инструктора ) очень доходчиво и понятно. Не хватило только 2-3-этажного колбека для рассмотра

    • @SomeTricks
      @SomeTricks Před 3 lety

      2-3 этажа - прошлый век. Уже ведь есть промиссы, а в es7 ввели async/await.

    • @mishanep
      @mishanep  Před 3 lety +2

      Промисы и асинхронные функции тоже со временем рассмотрим на канале.

  • @kamol8861
    @kamol8861 Před 2 lety

    оч качественно

  • @max_ok
    @max_ok Před 2 lety +1

    👍

  • @Vladimir-ww1be
    @Vladimir-ww1be Před 3 lety +1

    Спасибо толково объясняете. Как совет, опять же хотя кому как, подумайте может немного ускорить подачу материала, смортю вас на 1.75 и параллельно код успеваю писать, может тогда просмотры увеличаться. Удачи!

    • @mishanep
      @mishanep  Před 3 lety +2

      Я весь CZcams на двушке смотрю)) при этом мне люди порой пишут, что я для них слишком быстро говорю) но я в любом случае экспериментирую. Спасибо.

    • @Albert_Hall
      @Albert_Hall Před rokem +2

      @@mishanep нормальная скорость, Михаил. Отличная! Кто хочет, тот ускорит. Я смотрю вас на обычной скорости и получаю удовольствие. Так как параллельно в голове прокручиваю необходимые мне сопутствующие мысли и сценарии.
      Быстрота в подаче раздражает - превращаешься в ведро, куда сливают инфу.
      Изучая что-то новое, у человека должно оставаться время на обдумывание параллельно тому, что говорит лектор.
      Если же смотришь, чтобы что-то обновить в голове, увеличиваешь скорость. И все довольны.

  • @barchaan
    @barchaan Před 10 měsíci

    вау !

  • @ijambookvia
    @ijambookvia Před 2 lety

    Здравствуйте, спасибо большое за Ваше видео, все доходчиво и понятно. Мне как новичку было все ясно. но я только одного не поняла: откуда берётся аргумент num? возможно, глупый вопрос и Вы вряд ли заметите, но я просто что-то упустила из виду это...

    • @mishanep
      @mishanep  Před 2 lety

      Какой таймкод? Я не помню своих видео наизусть :)

    • @ijambookvia
      @ijambookvia Před 2 lety

      @@mishanep вот к примеру 11:00 , function numSquared, её параметр num, но откуда она берет этот аргумент? я этого немного не поняла

    • @mishanep
      @mishanep  Před 2 lety

      @@ijambookvia numSquared как и любая другая функция будет рассматриваться внутри copyArrayAndDoSmth по именем instructions. Поэтому когда идет вызов instructions(arr[i]), то вызывается переданный колбэек, в данном случае numSquared и ему передается значение arr[i], которое принимает параметр num

    • @ijambookvia
      @ijambookvia Před 2 lety

      @@mishanep поняла, спасибо большое!

  • @user-ue7ii9th4o
    @user-ue7ii9th4o Před 3 lety

    Спасибо за видео! Но одно для меня остается непонятным, почему Вы называете сущность, являющуюся по сути просто делегатом, callback-функцией? Ведь "издревна" callback-функция - это функция назначение которой быть выполненной по завершении работы другой функции в которую она и передана для этого. И название у нее соответствующее. Либо это так принято в JS? Странно...

    • @mishanep
      @mishanep  Před 3 lety

      Думаю вы правы, отчасти здесь действительно смешиваются два понятия. Но в среде JavaScript, насколько я встречаю, и то и другое называется колбэком.

  • @SomeTricks
    @SomeTricks Před 3 lety

    Здорово объясняешь! Но!
    1. ESLint ругается на i++ (например airbnb)
    2. Каждую итерацию цикла, вычислять .length не круто. По-хорошему ее надо перед циклом записать в переменную.
    3. Почему не использовал map вместо цикла?

    • @mishanep
      @mishanep  Před 3 lety +3

      1. airbnb - жесткий, мы на работе от него отказались, используем конфиг гугла (насколько помню у него к i++ претензий не было).
      2. Length - насколько я его понимаю, это кэшированное свойство, которое автоматически меняется при изменении длины массива и не требует перерасчета при обращении к нему.
      3. Map не спользовался как раз потому, что он уже принимает колбэк, а в видео мы разбирали само понятие.

    • @olegsoul6016
      @olegsoul6016 Před 3 lety

      @@mishanep 3. Цикл, окей, но почему тогда не "for of"? Более современный и лаконичный синтаксис.

    • @mishanep
      @mishanep  Před 3 lety +3

      @@olegsoul6016 странные вопросы вы задаете :) для сути видео что-то принципиально от этого изменилось бы?

    • @olegsoul6016
      @olegsoul6016 Před 3 lety

      @@mishanep Хм, я бы тогда сказал - странный ответ ваш на мой вопрос)) Раз все равно что использовать, для чего вы тогда показываете современные методы, что отличает их от более старых (кстати в том же самом примере в цикле вы почему-то использовали для возведения в степень метод из ES6, а не Math.pow()...)? И, мне казалось, отвечать вопросом на вопрос, не очень культурно...сори, если чем-то задел вас, я просто хотел разобраться в вашей логике подачи материала.

    • @mishanep
      @mishanep  Před 3 lety

      @@olegsoul6016 не вижу смысла вступать в прения. На мой взгляд для логики изложения конкретного видео не было никакой разницы. Возможно и был какой-то умысел, когда готовился материал для видео, но спустя два месяца после публикации об этом уже сложно что-то сказать.

  • @Emil-ey7pn
    @Emil-ey7pn Před rokem

    А как элементы массива автоматически идут в nam?

    • @dmitry7417
      @dmitry7417 Před rokem

      Элементы массива не "идут автоматически в num". Смотрите на функции numSquared и divideBy2 как на формулы, которые мы вкладываем в функцию copyArrayAndDoSmth в качестве аргументов при её вызове. Эти аргументы (формулы) заменяют параметр instructions в теле функции copyArrayAndDoSmth. С помощью этого параметра (instructions) мы производим соответствующие вычисления над числами, которые стоят первым аргументом функции copyArrayAndDoSmth.

    • @user-zj3ox1oh6n
      @user-zj3ox1oh6n Před rokem

      @@dmitry7417 добрый день. А можно ли таким способом вывести четные/нечетные числа. Я попытался, он лишь проверяет их, выводит true или false

    • @dmitry7417
      @dmitry7417 Před rokem

      @@user-zj3ox1oh6n добрый... Попробуйте таким образом:
      function getOddNum(num) {
      if (num % 2 !== 0) {
      return num;
      } else {
      return false;
      }
      }

    • @dmitry7417
      @dmitry7417 Před rokem

      @@user-zj3ox1oh6n Предлагаю сперва показать свой вариант : )

    • @dmitry7417
      @dmitry7417 Před rokem

      @@user-zj3ox1oh6n Интересное решение. Вместо простенького else if такая хитрая штука : )

  • @mityadima
    @mityadima Před 2 lety

    А когда замыкания рассмотрите?

    • @mishanep
      @mishanep  Před 2 lety

      Давно уже есть на канале czcams.com/video/BOjr2L3VXsc/video.html