Разберём каррирование в JavaScript на РУСИ-МУСИ-ПУСИ!

Поділитися
Вставка
  • Опубліковано 17 вер 2021
  • На пальцах всё изучим, до самой глубины. Поймём наконец-то эту страшно технику!
    🍀 Поддержать канал: www.donationalerts.com/r/webe...
    ☕️ Купить кофе: buy.stripe.com/5kA7sL9574SG7x...
    🎨 Купить набор кистей Procreate: webelart.com/illustration.
    ✍️ Мой telegram channel: t.me/webelart
    🏰 Английский UA-cam: @webelart_en
    💁🏼‍♀️ Инстаграм: / webelart
    🦄 LinkedIn: / webelart
    Ссылка на голосовалку по видео: forms.gle/ahhftfZQNN6QVEVc9
    Рекомендую посмотреть ВСЕ ВИДЕО на моём канале!
    Я рассматриваю различные темы веб-разработки, на текущий момент: веб-основы, веб-анимации, веб-дизайн и ОПЫТ В ДО*УЯ лет.

КОМЕНТАРІ • 105

  • @avocodeuser1343
    @avocodeuser1343 Рік тому +12

    Ленок, при создании функции мы пишем не аргументы, а параметры, аргументы это при вызове функций, я из-за этого путался постоянно, потому что каждый объясняет не пойми как, одни вызываем функцию с параметрами, другие пишем функцию с аргументами и т.д.

  • @sergeystarkov8010
    @sergeystarkov8010 2 роки тому +6

    Спасибо! Офигенный формат - очень заходят ваши объяснения. Посмотрю все уроки :)

  • @user-hj4cw8st5i
    @user-hj4cw8st5i 2 роки тому +1

    огромное спасибо за ваш труд!

  • @namax6634
    @namax6634 Рік тому +4

    Если использовать 'return curried.bind(this, args)' - этот вызов навсегда прикрепляет контекст к carried.
    В результате фиксируется контекст. Не получится сменить контекст функции, которая была создана передачей частичного кол-ва аргументов.

  • @Ramosok
    @Ramosok 2 роки тому

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

  • @user-qu5ff6dw8h
    @user-qu5ff6dw8h Рік тому +2

    Спасибо огромное за Ваши труды, очень помогло видео! Если что в прошлом предложении была шутоточка...раз 10 пересматривал)))

  • @cheesecheesson9842
    @cheesecheesson9842 2 роки тому

    Будем теперь смотреть всё время

  • @svetlanazheleykina4113
    @svetlanazheleykina4113 Рік тому +2

    Классное вступление! Видео понравилось очень. Особенно комментарий про "исчадие":))) Оценила, сама проверила, так как повторяла за Вами код. "Исчадие" словила:) Класс! Спасибо!!!😍

  • @outer-space-coding
    @outer-space-coding 2 роки тому +2

    Лучшее объяснение на youtube!

  • @imgod113
    @imgod113 2 роки тому +6

    За восемь лет работы с джс ни разу не использовал каррирование, кому оно надо кроме собеседующего?

    • @JohnLee-bo9ft
      @JohnLee-bo9ft Рік тому +2

      Оно надо, если ты пишешь в функциональном стиле и тебе нужно замкнуть данные.
      В остальном конечно, оно без надобности

    • @imgod113
      @imgod113 Рік тому +1

      @@JohnLee-bo9ft хороший ответ для собеседования)

  • @sergeistalarkin7969
    @sergeistalarkin7969 Рік тому

    спасибо😊

  • @ur2232
    @ur2232 Рік тому

    Приятные эмоции))

  • @squitani
    @squitani 2 роки тому +2

    Ты похожа на милого подростка-пацана из американских фильмов.
    Спасибо за крутые видео

  • @dramaturgpodolsk
    @dramaturgpodolsk 8 місяців тому

    Спасибо!

  • @user-ij9qf9yx8z
    @user-ij9qf9yx8z Рік тому +3

    Благодарю за пояснение! Хотелось бы конечно побольше разъяснений где и как и зачем его еще испоьзуют?

    • @user-yp6os3oe3i
      @user-yp6os3oe3i 4 місяці тому

      а используют затем, чтобы раз***ать джунов на собесе :)

  • @kraysmax3715
    @kraysmax3715 2 роки тому +2

    Ладно ладно, вопросов нет крутой видос, лайк подписка. Если к этому можно было б ещё что то добавить, то чуть больше расскрыть тему с юзкесами каррирования, но в остальном идеально!

    • @webelart
      @webelart  2 роки тому

      Спасибо! :)))

  • @VenatorLine
    @VenatorLine 2 роки тому +1

    Т. е. получается что bind здесь не вызывает функцию, а просто её привязывает к самой себе или как? this является контекстом curried? Объясните пожалуйста, а то я новичок и не до конца понимаю цель данной функции в этом случае.

    • @LetroScript
      @LetroScript 2 місяці тому

      Да, метод bind не вызывается, а вот методы apply и call - вызываются. С помощью метода bind, можем типа копировать функцию или метод из какого-то класса, но вызывать можем только по своим нуждам.

  • @YarkiiYa
    @YarkiiYa Рік тому

    Начало просто топ 😂😂😂

  • @theoty-js-react
    @theoty-js-react 2 роки тому

    Елена лучшая^^

  • @GkuZzz
    @GkuZzz 9 місяців тому

    Лайкосик как только попросила, а подпишусь как досмотрб

    • @webelart
      @webelart  9 місяців тому

      😘 Спасибо!

  • @Albert_Hall
    @Albert_Hall 11 місяців тому

    🎓Естественная подача позволяет мозгу легче думать и вникать 🎩

  • @egoist2956
    @egoist2956 2 роки тому

    Вот тебе лайкосик..

    • @webelart
      @webelart  2 роки тому

      Спасибо! 😁

  • @avocodeuser1343
    @avocodeuser1343 Рік тому

    Солнышко, у меня есть вопросик, написал многим верстальщикам никто не знает ответ, Я использую паг и в одном из видосов, я видел, ты тоже его юзаешь. Так вот, есть ли аналог eCSStructor который мы используем в html для копирования классов? Паг классный шаблонизатор, но смысл от него если всё равно приходится залетать в файл html, постоянно. Пожалуйста помогииииииииии мне. Кста только у тя увидел видео про каррирование

  • @YuriiKratser
    @YuriiKratser 2 роки тому +3

    Вы удивили фото на заставке видео. Вы девушка с перчинкой, с огнём 🔥

    • @webelart
      @webelart  2 роки тому +1

      😍😁 Спасибо!

  • @frobeniusfg
    @frobeniusfg Рік тому +1

    Пожалуй, самое жесткое решение, правда без this:
    const curry = (fn) =>
    function curried(...a)
    {
    return a.length >= fn.length ? fn(...a) : (...b) => curried(...a, ...b)
    }
    Заспредженные аргументы можно чейнить через запятую в списке аргументов функции

  • @sviatbondar1721
    @sviatbondar1721 Рік тому

    спасибосики за видосик шикардосик

  • @aktotuttttt
    @aktotuttttt 2 роки тому +2

    О круто! а в каком реальном случае может понадобиться такое коррирование?

    • @webelart
      @webelart  2 роки тому +1

      Спасибо! Каррирование - это очень частый приём в функциональном программирование. Например, у вас есть набор базовых функций и из них создаётся набор более сложных функций. Но я признаюсь мало работала с настоящей функциональщиной, поэтому супер конкретный пример сложно придумать. :) На собесах очень часто такую тему тоже спрашивают.

    • @vargvarg7922
      @vargvarg7922 Рік тому +2

      @@webelart вово, только для собесов, за 5 лет работы ни разу не столкнулся, но перед собесом зашел послушать, чтобы в теории чето ответить

  • @serdotsenko
    @serdotsenko 2 роки тому

    тема наверное интересная, у мня только 1 вопрос, зачем? какое практическое применение этой концепции? типа есть вот такая задача и её можно решить только карированием и больше никак, есть такие задачи?

    • @webelart
      @webelart  2 роки тому +1

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

    • @serdotsenko
      @serdotsenko 2 роки тому +1

      @@webelart вот именно, что на собесах спрашивают, то чем почти никто не пользуется )))

    • @UC1C0GDMTjasAdhELHZ6lZNg
      @UC1C0GDMTjasAdhELHZ6lZNg Рік тому +1

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

  • @galievramil1169
    @galievramil1169 Рік тому

    Интересно, короче сигнатура функции и свойство length, рекурсивный вызов с проверкой.
    Спс.

  • @shittywizzard5727
    @shittywizzard5727 2 роки тому +4

    Лайк префаером, проорал с заставки))

  • @nepcz
    @nepcz 2 роки тому +1

    Исчадие тут пошло 🤣 🤣 🤣

    • @webelart
      @webelart  2 роки тому

      Просто Ору!! 🤣🤣

  • @dcdc3400
    @dcdc3400 10 місяців тому +1

    Привет! Можно еще короче
    function curry(fn) {
    return (...args) =>
    args.length >= fn.length ? fn(...args) : curry(fn.bind(null, ...args));
    }

    • @doge8633
      @doge8633 5 місяців тому

      вау ты добавил тернарку? гений. А мы этого не знали, и что это даст кроме сокращения кода?

  • @turalismayilov4291
    @turalismayilov4291 2 роки тому

    спасибо за полезное видео

  • @irinplehanova128
    @irinplehanova128 Рік тому

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

  • @michaelkovach3894
    @michaelkovach3894 Рік тому

    Valery kipelov?

  • @username-forbidden
    @username-forbidden Рік тому

    Начало 2:02

  • @v.demchenko
    @v.demchenko Рік тому

    Немного другой пример карирования.
    add() return 0
    add(1)() return 1
    add(2)(3) return 5
    function add(num) {
    let result = 0
    if (num === undefined) {
    return result
    }
    result += num
    return function carry(data) {
    if (data === undefined) {
    return result
    } else {
    result += data
    return carry
    }
    }
    }

    • @doge8633
      @doge8633 5 місяців тому

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

  • @Konstantin.Zharinov
    @Konstantin.Zharinov 2 роки тому

    Зараза!

    • @webelart
      @webelart  2 роки тому +1

      Тут перебор. Звучит очень неприятно!

    • @Konstantin.Zharinov
      @Konstantin.Zharinov 2 роки тому

      @@webelart не. Это такой комплимент. ❤️

    • @webelart
      @webelart  2 роки тому

      @@Konstantin.Zharinov Само слово мне не нравится. Но за комплимент как смысл, спасибо! 😘

  • @Ingvarsson-Ukr
    @Ingvarsson-Ukr 2 роки тому +1

    обьяснили четко, спасибо, но вот только на*рена оно все нужно в реальной работе - вообще не понятно

    • @RinatWOT
      @RinatWOT 2 роки тому

      Есть такое

  • @gkhabada
    @gkhabada Рік тому

    а в превью картинки точно все правильно написано?

    • @webelart
      @webelart  Рік тому

      😁😁😁😄 нашли ошибку???

    • @gkhabada
      @gkhabada Рік тому

      @@webelart ошибка ли это, вот в чëм вопрос 😆

  • @flance911
    @flance911 2 роки тому

    На обложке зачеркнуто З и получилось "РАЕБЁМ"?

    • @webelart
      @webelart  2 роки тому

      😂 Ага, игралась с названиями, чтобы ничё не заподозрили.

    • @flance911
      @flance911 2 роки тому

      @@webelart :)

  • @johnbaretty9725
    @johnbaretty9725 2 роки тому

    женщина, вам лайк поставил

    • @webelart
      @webelart  2 роки тому

      😘 Пасиба!

  • @elizavetakonstantinova8661
    @elizavetakonstantinova8661 2 роки тому

    Комментарий как второй лайк

  • @druf5962
    @druf5962 Рік тому

    Как это понять так, что бы все это поняли?!?!🥴🥴🥴0:15 А НУ СЮДА РАЕБЕМ ЭТО КАРРИРОВАНИЕ🤛🤛💥🥺🥺🥺

  • @dirtyhandz
    @dirtyhandz 2 роки тому +2

    Энтузиазма с каждым видосиком все больше 🤣

  • @B_G_V
    @B_G_V Рік тому +1

    Умничка, пусечка, чмоки-чмоки в щёчку, за такое замечательное объяснение :))

  • @user-yd9bn3um8t
    @user-yd9bn3um8t 2 роки тому

    Блин, почему я вас смотрю? Я же вообще не джавист ))

    • @kraysmax3715
      @kraysmax3715 2 роки тому +2

      так это и не джава)

  • @OlmerMN
    @OlmerMN Рік тому

    Ни хрена не понятно, но очень интересно.

  • @x4r7
    @x4r7 2 роки тому

    lol

  • @leepoch3764
    @leepoch3764 2 роки тому

    Таки а зачем это каррирование нужно, я так и не понял, честно говоря)

    • @webelart
      @webelart  2 роки тому

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

  • @MrDmi3i
    @MrDmi3i Рік тому

    у меня слабость к умным девушкам 😍

  • @sergeykagal8656
    @sergeykagal8656 2 роки тому

    wtf РУСИ-МУСИ-ПУСИ! ?

  • @user-kj7fo3bd9y
    @user-kj7fo3bd9y 2 роки тому +1

    Кто-то залетает с ноги, а я залетел с лайка)

  • @fedc_
    @fedc_ 2 роки тому +1

    Это топ

  • @ivancoin2570
    @ivancoin2570 Рік тому +1

    Какой-то мазохизм это каррирование. На сколько часто его используют в коде? Это же читать не возможно. Ни разу не видел, если увижу - буду проклинать человека написавшего такой код.

  • @Ivan-lm9sp
    @Ivan-lm9sp Рік тому

    Спасибо за видео, но своими ошибками ты часто запутываешь. Может лучше сразу писать правильно?)

    • @webelart
      @webelart  Рік тому +1

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

  • @user-te4zh2dz9r
    @user-te4zh2dz9r Рік тому

    Наверное это видео надо переснять: слишком много "короче" и мало объяснения зачем всё это нужно

    • @webelart
      @webelart  Рік тому

      Наверно вам нужно поискать что-то другое, где всё подлиннее. 😘

  • @alexlei4232
    @alexlei4232 8 місяців тому

    Понял, что нихера не понял)

  • @digitalturkistan1857
    @digitalturkistan1857 Рік тому

    Блин прям ругала требовала подписатся. Боюсь не подписатся

  • @user-uc5zi1gs8f
    @user-uc5zi1gs8f 6 місяців тому

    Кринжово, запутанно, непонятно

    • @webelart
      @webelart  6 місяців тому +1

      Так грусненько стало…

    • @user-uc5zi1gs8f
      @user-uc5zi1gs8f 6 місяців тому

      @@webelart попробуйте мантаж, лишнюю путаницу удалите, оно никому не нужно

    • @webelart
      @webelart  6 місяців тому +1

      @@user-uc5zi1gs8f Монтировать я буду так как мне это нравится. Не нравится, кнопка unsubscribe. А это видео одно из лучших по монтажу.

    • @webelart
      @webelart  6 місяців тому

      @@user-uc5zi1gs8f и да про грусненько это было сарказм 🤌

    • @user-uc5zi1gs8f
      @user-uc5zi1gs8f 6 місяців тому

      @@webelart было трудно, но я догадался👍🤣

  • @pavel.88
    @pavel.88 8 місяців тому

    Круговорот функций в javascript, чет в голос😅

  • @ioankatsapovich
    @ioankatsapovich 10 місяців тому

    Не русской а расейской

    • @Leman_357
      @Leman_357 9 місяців тому +1

      АРЯЯЯЯЯЯЯЯЯЯ

    • @ioankatsapovich
      @ioankatsapovich 9 місяців тому

      @@Leman_357 расиянка?

    • @__kawaii
      @__kawaii 4 місяці тому +1

      Поросенок, чего не под Авдеевкой в выгребной яме? В очередной раз испугался Русского сапога, как и в Бахмуте?) Твое проклятое племя всегда будет в рабстве под Русским сапогом, запомни, нация трусливого скота)

  • @eleonora5101
    @eleonora5101 Рік тому

    Спасибо!