Урок 9. JavaScript. Proxy. Объекты, функции, классы. Часть 1

Sdílet
Vložit
  • čas přidán 9. 07. 2019
  • Получить профессию Frontend разработчика -
    bit.ly/3xXexT7
    Подробнее узнать об обучении в Result School -
    bit.ly/3u4DGKG
    Бесплатный курс HTML & CSS - bit.ly/3OLh5us
    Сделать 5 проектов на JavaScript - bit.ly/3y15Ebn
    Я в соц сетях:
    Telegram: t.me/js_by_vladilen
    VK: vladilen.minin
    Instagram: / vladilen.minin
    Мои паблики по JavaScript:
    Telegram: t.me/result_school_it
    VK: result.school
    Instagram: / result.scho. .
    JavaScript cообщества:
    Discord: / discord
    Telegram: t.me/js_by_vladilen_chat
    Roadmap по каналу:
    vladilen.notion.site/Roadmap-...
    Урок 9. JavaScript. Proxy. Объекты, функции, классы. Часть 1
    В этой части я расскажу про теорию использования Proxy в javascript
    Вы узнаете как прокси работает с объектами, классами и функциями
    Ссылка на документацию:
    developer.mozilla.org/en-US/d...
    Сложный JavaScript простым языком:
    • Урок 1. JavaScript. Чт...

Komentáře • 227

  • @user-xh2og5bv7q
    @user-xh2og5bv7q Před 4 lety +5

    Спасибо Владилен,у вас очень понятная модель изложения информации.

  • @TheLNMA
    @TheLNMA Před 5 lety +25

    Большое спасибо за старание и понятную подачу информации.

  • @vandrounik_pa_domu
    @vandrounik_pa_domu Před 4 lety +14

    Крутые видео, Владилен! Без твоих стараний мне было бы гораздо сложнее изучать JS, спасибо! Жду новых видео

  • @jjjj-wo6np
    @jjjj-wo6np Před 3 lety +1

    Владилен, вы - невероятный. Огромное Вам спасибо! Лучший учитель в русскоязычном сегменте!

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

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

  • @user-bp3vk3uj8h
    @user-bp3vk3uj8h Před 2 lety

    Отменное видео! Спасибо, Владилен!

  • @alexandrelagin5490
    @alexandrelagin5490 Před 5 lety +1

    Спасибо, интересное видео. Уже заинтригован следующими видео с примерами Proxy.

  • @andriihelever1793
    @andriihelever1793 Před 4 lety +4

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

  • @mels4886
    @mels4886 Před rokem +4

    Первый раз посмотрел - нечего не понял, спустя неделю посмотрел ещё раз, нечего не понял, прошло некоторое время, посмотрел, и снова нечего. Сегодня решил снова посмотреть, но что то подсказывало что на этот раз пойму, и я все понял, на этот раз все было понятно.
    Владилен ты лучший, продолжай делать такие крутые ролики

    • @zahar1979
      @zahar1979 Před rokem

      что то я сомневаюсь что в 4 раз ты все понял

  • @mineralnone3684
    @mineralnone3684 Před 2 lety

    Спасибо за видео! Очень интересно слушать Вас.

  • @SanchoXDE1337
    @SanchoXDE1337 Před 4 lety +2

    Спасибо за труд!

  • @VitalikAwesome
    @VitalikAwesome Před 4 lety +1

    Лучший!!!
    Продолжай в том же духе.!!

  • @maksymovych_maksym
    @maksymovych_maksym Před 4 lety +1

    Спасибо труд!
    Однозначно лайкоцит!!

  • @user-qj2yg1rn3j
    @user-qj2yg1rn3j Před 4 lety +171

    Спасибо! Ничего не понял)

    • @andTutin
      @andTutin Před 4 lety +4

      Жиза

    • @dmitrap1982
      @dmitrap1982 Před 3 lety

      lol'

    • @alym.aleksey
      @alym.aleksey Před 3 lety +11

      Потому что он ничего не объяснил

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

      @@alym.aleksey Ничего не объяснил? Как ты себе представляешь "настоящее объяснение"?

    • @user-xs4bp9uu1h
      @user-xs4bp9uu1h Před 3 lety +2

      Ставлю палец вверх еще не посмотрев!

  • @user-kv4bv3ms1d
    @user-kv4bv3ms1d Před 4 lety

    Спасибо за твои уроки.

  • @user-ys8vm6mc5b
    @user-ys8vm6mc5b Před 9 měsíci

    емко и понятно. спасибо, автор!

  • @ilyalevtsov9266
    @ilyalevtsov9266 Před 2 lety

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

  • @orbismala8124
    @orbismala8124 Před 2 lety

    Спасибо за видео. В конце фишка особенно понравилась.

  • @user-tg9wd2hm1g
    @user-tg9wd2hm1g Před 4 lety +4

    Благодарю Вас Владилен!) Вы очень толково все объясняете. Жду новых видео)

  • @user-ff8sm5qr8n
    @user-ff8sm5qr8n Před 4 lety

    Классные видосы! Спасибо!

  • @lumeaceaiuluisrl6343
    @lumeaceaiuluisrl6343 Před 3 lety +7

    Владилен, спасибо ! Я новичок и мне не всегда с первого раза всё понятно, но Вам удаётся сложные вещи так преподнести, что они кажутся не такими уж и страшными) Это талант!

    • @r45her
      @r45her Před rokem +1

      Тема интересная, но за 2 года хоть раз пригодилось это?)

  • @raminhesenov1376
    @raminhesenov1376 Před rokem

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

  • @petrvictorovich
    @petrvictorovich Před 2 lety

    Прикоольно!

  • @temeralin.t
    @temeralin.t Před 4 lety

    вау, классный и необычный пример в конце!! топ

  • @paulparker3664
    @paulparker3664 Před 4 lety +1

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

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

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

  • @ilnurryazhapov9377
    @ilnurryazhapov9377 Před 5 lety +2

    Здорово продолжай

  • @AsVit
    @AsVit Před 4 lety +2

    Конечно это очень полезный ролик, и конечно - очень понравился! :-) Спасибо большое!!!

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

    Спасибо, ты лучший!

  • @M0nren
    @M0nren Před 4 lety +2

    Я поднялся на ступеньку выше благодаря этому видео, спасибо

  • @arthurhovhannisyan31
    @arthurhovhannisyan31 Před 4 lety +20

    Владилен, давай контент по докеру. Будет просто пушка!

  • @User-kn3gv
    @User-kn3gv Před 4 lety +1

    Владилен ты супер, брат.привет тeбe c Еревана!!!

  • @user-je8md1kc7u
    @user-je8md1kc7u Před 3 lety +2

    Я не пробовала разобраться в этом всём сама, но видно, что материал сложный и без вашего объяснения было бы тяжко. Спасибо вам за уроки

  • @TrayHardPlay
    @TrayHardPlay Před 5 lety +14

    Очень большая просьба - лучше начинай подобные уроки с примеров применения. Чтобы было сразу понятно, зачем вообще это нужно, для чего это учить, что оно дает. Потому что иначе смотреть тяжеловато и скучновато. Понятно, что будут те, кто в любом случае досмотрит, но если хочешь максимально всех охватить, то лучше всё-таки начинать как и любые публичные выступления - с актуальности обсуждаемой далее темы или технологии. Энивей за урок спасибо)

    • @VladilenMinin
      @VladilenMinin  Před 5 lety +7

      Я очень думал, как сделать это с прокси и понял, что конкретно в этом случае лучше тот порядок, что я дал
      Тема не самая простая и начальные примеры могли бы только запутать
      Но я обращу внимание на это, благодарю

    • @multidotha
      @multidotha Před 5 lety

      @@VladilenMinin все супер! Но я тоже за то, чтобы в уроке был маленький практический пример. Спасибо!

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

    Лучший!

  • @vladimirww5152
    @vladimirww5152 Před 3 lety

    Классно! Прокси в JS

  • @sekirogenshiro2210
    @sekirogenshiro2210 Před 4 lety +1

    мудрено!

  • @vitalii.pohoretskyi
    @vitalii.pohoretskyi Před 4 lety +1

    Поддержка иммутабельности дело конечно святое, но когда в обьекта овер 3 вложености и это все нужно постоянно копировать.. Решил добавить в проект библиотеку immer и как оказалось ее функционал построен на прокси, вот и пришло время посмотреть этот урок :)
    Все просто и понятно обьяснил, спасибо!

  • @samgasper99
    @samgasper99 Před 2 lety

    Жесть он крууут! Смотри брат что он творит!

  • @alexanderdiakonov1340

    Пасиб дядь... Помог

  • @MrFeedme86
    @MrFeedme86 Před 4 lety +4

    Вооу, последний пример про age_name_job просто отрыв бошки, невероятно круто!

  • @user-vr1mf1ig2j
    @user-vr1mf1ig2j Před měsícem

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

  • @ssurrokk
    @ssurrokk Před 4 lety

    Спасибо

  • @ivanp7697
    @ivanp7697 Před 4 lety +2

    збс внатуре четко!

  • @user-kg6fz5tz2b
    @user-kg6fz5tz2b Před 5 lety

    Спасибо!

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

    Мотивация для создания нового контента +

  • @Shkur777
    @Shkur777 Před 4 lety

    Вот последняя конструкция очень заинтересовала

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

    Спасибо. Ничего не понял, НО! Очень интересно!

  • @Kreator321RG
    @Kreator321RG Před 5 lety +2

    Наверное ты первый кто смог рассказать о Proxy просто и понятно)) Спасибо)

  • @andreyperetyatko913
    @andreyperetyatko913 Před 4 lety +2

    Спасибо, что ты есть)) Очень круто обьясняешь)) Я прям все до буквы понял) Хотя педалю на С#

  • @GGSoft2009
    @GGSoft2009 Před 4 lety

    Thanks

  • @MrAirrussia
    @MrAirrussia Před 5 lety +13

    ёмоё вот что бывает, когда не изучаешь новые фишки. Я всё это сам делал через наследование. Зачёт

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

    10:06
    Можно вместо return true перед строчкой delete target[prop] прописать return
    return delete target[prop];
    и будет возвращать true

  • @overseer7591
    @overseer7591 Před 2 lety

    Красавчик и спасибо, ушёл от Фрилансера по жизни!

  • @user-xk2xl8hb8i
    @user-xk2xl8hb8i Před 4 lety

    Спасибо, ты крутой)

  • @coolfilms1545
    @coolfilms1545 Před 3 lety

    Дякую!

  • @vanya_hrynkiv
    @vanya_hrynkiv Před 4 lety +1

    комментарий лайк, подписка, колокольчик

  • @user-wv7bq4je8g
    @user-wv7bq4je8g Před 4 lety +2

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

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

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

  • @IgorNovakus
    @IgorNovakus Před 8 měsíci

    Если я не ошибаюсь - при создании стрелочных функций, нельзя перебить контекст родителя в котором она была создана. Тоесть this будет получен от родителя, поэтому их лучше не делать методами объектов и apply работать не будет.
    А видео топчик!

  • @user-bx7ly2th3b
    @user-bx7ly2th3b Před 4 lety +1

    в методе has можно было использовать Object.keys(target).includes(prop)?
    по последнему примеру в видео: разве через обычный геттер для класса, о которых ты рассказывал ранее, нельзя сделать то же самое?

  • @ignatmv.8654
    @ignatmv.8654 Před 4 lety

    Часть методов прокси обязательно должны возвращать инварианты (set, deleteProperty и далее по спецификации).

  • @PornerIgor
    @PornerIgor Před 2 lety

    Норм так

  • @someqwerty3115
    @someqwerty3115 Před 8 měsíci

    ❤‍🔥🔥🔥🔥

  • @ghost8652
    @ghost8652 Před 3 lety

    Если я правильно понял, то посредством Proxy, возможно осуществлять инкапсуляцию и полиморфизм в классах?

  • @dmitryzarubin4835
    @dmitryzarubin4835 Před 4 lety +2

    А чем отличаются get и set в Proxy от свойств в Object.Create?

  • @mihhailk4749
    @mihhailk4749 Před 4 lety

    Ochen kruto.

  • @mukhammadrustambayev2051
    @mukhammadrustambayev2051 Před 5 lety +2

    все понятно, Proxy типа декоратор.

    • @VladilenMinin
      @VladilenMinin  Před 5 lety +2

      Да, можно и так сказать. Но людям из чистого JS не знаком концепт декоратора)

    • @mukhammadrustambayev2051
      @mukhammadrustambayev2051 Před 5 lety

      @@VladilenMinin от вас жду урок про vue-class-components, vue-property-decorator

    • @VladilenMinin
      @VladilenMinin  Před 5 lety

      @@mukhammadrustambayev2051 Будет
      Я сейчас курс доделываю и потому немного притормозил с ютубом. Временно

    • @mukhammadrustambayev2051
      @mukhammadrustambayev2051 Před 5 lety

      спасибо :)

  • @top-mma-news
    @top-mma-news Před 4 lety +3

    Я новичок в изучении жс, тема конечно для меня очень сложная, но то как ты объясняешь в принципе понятно, просто пока не понимаю как это все применять на практике и такое бы уж точно не повторил, надеюсь все придет с опытом. Спасибо!

    • @VladilenMinin
      @VladilenMinin  Před 4 lety

      Следующее видео для тебя как раз

    • @top-mma-news
      @top-mma-news Před 4 lety +1

      Владилен Минин посмотрел следующее видео, тяжеловато конечно, буду пересматривать и вникать, спасибо за материал!

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

    У меня за окном взрывы, но мне без разницы я учу JS

  • @javokhirrakhimov8241
    @javokhirrakhimov8241 Před 5 lety +5

    Может быть лучше использовать QuokkaJS вместо браузера раз все равно на VS Code?)

  • @LoveleTi
    @LoveleTi Před 4 lety

    Получается тоже самое можно сделать через наследование ?

  • @user-yg8nh2ek6w
    @user-yg8nh2ek6w Před 4 lety

    Владилен, давай контент по Redux-Saga. Будет просто пушка! )

    • @VladilenMinin
      @VladilenMinin  Před 4 lety

      Есть немного на канале

    • @user-yg8nh2ek6w
      @user-yg8nh2ek6w Před 4 lety

      @@VladilenMininДа есть немного, я недавно смотрел твой миникурс (в одном видео) по редакс. Показалось по саге как то бегло, решил сам еще немного подтянуть. Мало нормальной инфы

  • @johnstrayk5208
    @johnstrayk5208 Před 4 lety +1

    Владилен, или может кто-другой, почему если из объекта person удаляешь поле name, метод has при вызове поле name все равно возвращает true? По идее в объекте на который ссылается прокси этого поля нет. И обратное из массива удаляем name и возвращаем name в персон и has возвращает false. Получается в prop попадает сам созданный массив, а не прокси сформированный на основе объекта person?

  • @user-bx7ly2th3b
    @user-bx7ly2th3b Před 4 lety

    Когда я проксирую класс (MyClass), у меня в методах этого класса теряется this (становится this = Proxy). Если методы класса объявить, как стрелочные функции, то this сохраняется (this = MyClass), но перестают работать геттеры и сеттеры Proxy. Как быть?

  • @cyclopentanpergidrophenantren

    интересно, а proxy воздействует на объект изменяя его или клонируя. Я так понимаю с помощью данного класса можно реализовать метод фабрика и реализовать блокирование множественного подключения к БД? Или же это закос на Reflection class api. Почему приходится прибегать к proxy, а не реализовать данную вещь как метод класса. А может это призрак полиморфизма? Я логику понять не могу

  • @ayubkhan_dev
    @ayubkhan_dev Před 2 lety

    Извините у вас есть шпаркалка по JS?

  • @Denis-hl2yz
    @Denis-hl2yz Před 4 lety +1

    Интересно почему не оперируешь терминами АОП, парадигмами ООП, ты же их реализовуешь) Или у фронтендщиков еще так не принято или я ошибаюсь?

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

    А в чем разница вывода функции в proxy:
    return target.apply(thisArg, args) и
    return target(args) ?
    Вроде одинаково все работает, но 2 способ короче

  • @artem031294
    @artem031294 Před 5 lety +1

    Самый, на мой взгляд, очевидный пример использования - это написание обертки для различного функционала. Как пример: API мессенджеров, пиш.ем свою Proxy обертку с методами, а target-ом указываем классы мессенджеров (Vk, Te, WA). Причем в этих классах, методы обертки могут быть не реализованы

    • @VladilenMinin
      @VladilenMinin  Před 5 lety

      Хороший частный случай. Абсолютно верно
      Если пойти дальше, то любые API запросы можно проксировать. Далее с помощью прокси делать интерсепторы и получать новый axios, который вроде на прокси и построен)

    • @artem031294
      @artem031294 Před 5 lety

      @@VladilenMinin на столько глубоко не копал, для меня пока axios - это замена $.ajax ))

    • @artem031294
      @artem031294 Před 5 lety

      @@VladilenMinin а ещё похоже на Mock объекты в PHPUNit

  • @user-hp5hw8su8q
    @user-hp5hw8su8q Před 5 lety +3

    "name_age" - it `s Magic

    • @VladilenMinin
      @VladilenMinin  Před 5 lety +1

      Прокси творят чудеса)

    • @user-hp5hw8su8q
      @user-hp5hw8su8q Před 5 lety

      Сделал как на уроке, похвалился сотруднику ))) он фулсток по js, и он был приятно удивлён!

    • @VladilenMinin
      @VladilenMinin  Před 5 lety +2

      @@user-hp5hw8su8q здорово! Ты его удивишь, если посмотришь следующее видео)

  • @brick2h720
    @brick2h720 Před 5 lety +1

    По поводу подачи материала вопросов нет, но в целом даже и не знаю что сказать.. нужно мыслить в парадигме Владилена и иметь за плечами не один год опыта, что бы понимать зачем это все нужно, к чему эти детальные обертки..

    • @VladilenMinin
      @VladilenMinin  Před 5 lety +2

      Свой канал я позиционирую не как для новичков. Этот плейлист - самый простой материал, что будет на канале

    • @kirillgavrilov9681
      @kirillgavrilov9681 Před 4 lety

      @@VladilenMinin , отлично! Спасибо тебе за такой контент и подачу материала

  • @Anton_Kac
    @Anton_Kac Před rokem

    Владилен я не понимаю уроки по JS напиши мне как подтянуть JS до прохождения курса. Спасибо

  • @navi4046
    @navi4046 Před 4 lety +1

    Спасибо за твои уроки, но я так и не понял когда это можно применить

    • @VladilenMinin
      @VladilenMinin  Před 4 lety +1

      Следующее видео с примерами

  • @user-xw3ek8sf9t
    @user-xw3ek8sf9t Před 5 lety +3

    Вопрос , а в чем разница между Proxy и аксессорами (надеюсь правильно написал ?

  • @snakeguy2181
    @snakeguy2181 Před 4 lety

    12:18, зачем здесь "thisArg", что он делает и как, не пойму. Заранее спасибо за ответ.

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

    Владилен, значения присваиваются и без сеттера. Кроме ошибки он получаетя не зачем не нужен, также можно с сеттером отдним работать без геттера.

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

    Спасибо за урок. Но если честно, ничуть не просто. Мне кажется, надо на примерах из реальных проектах показывать, зачем это вообще нужно?

  • @sekirogenshiro2210
    @sekirogenshiro2210 Před 4 lety

    Использовал прокис на практике?

    • @VladilenMinin
      @VladilenMinin  Před 4 lety

      Да, для оптимизации рендеринга графиков

  • @KostiaBazrov
    @KostiaBazrov Před 5 lety +2

    Монстер

  • @VladilenMinin
    @VladilenMinin  Před 5 lety +30

    У вас уже есть идеи как применить Proxy?)
    Примеры я приведу в следующем ролике

    • @s.konstantin
      @s.konstantin Před 5 lety

      Пока не знаю, может пригодится.
      Спасибо!

    • @VladilenMinin
      @VladilenMinin  Před 5 lety

      @DJ MIAMI Думаю тебе стоит начать с более простых вещей в таком случае

    • @alexs7931
      @alexs7931 Před 5 lety +2

      Я думал щас будет пример как сделать свой HashMap аналог Java, формула расчёта hash уже есть в сети, осталось только реализовать механизм поиска коллизий. Спасибо это очень полезные уроки, бывает случаи когда приходится работать со старым кодом, который нужно перенести на новый движок. Так вот с помощью этих примеров можно обернусь все что угодно в красивые, и приятные для использования методы, которые будут брать на себя всю рутину по общению со старым кодом.

    • @VorobyevAlexander
      @VorobyevAlexander Před 4 lety

      Первым в голову пришло: использовать для отладки....

    • @olegsubik
      @olegsubik Před 4 lety

      если я все правильно понимаю, то mobx работает на Proxy. раньше это было типа: "работает? ну и хорошо)". так хоть понимаю что это

  • @davtian1674
    @davtian1674 Před 5 lety +1

    set () {
    return Object.keys(target).indexOf(prop) !== -1 // true or false
    }

  • @user-yx3pu7gg7h
    @user-yx3pu7gg7h Před 3 lety +1

    Не понятен смысл передачи в качестве аргумента thisArg при проксировании функции.
    Прочитал, что это контекст this.
    Но, если добавить в хэндлер вывод в консоль, что такое thisArg, получаю undefined.
    При этом, когда делаю return target.apply(thisArg, args) вместо thisArg можно указать все что угодно, пустой массив/объект, любую строку, число
    ... и при этом все работает.

    • @igori6471
      @igori6471 Před 9 měsíci

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

  • @lpseeen5030
    @lpseeen5030 Před 4 lety

    когда будет практика js

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

    Этот синтаксис все еще актуален?? или уже некоторые не рабочие?

  • @Chambo015
    @Chambo015 Před rokem

    set должен вернуть true при успешной установке значения

  • @dmitrykirilenko9293
    @dmitrykirilenko9293 Před 3 lety

    перегрузка)

  • @akhmedmagomedov324
    @akhmedmagomedov324 Před 2 lety

    зачем нкжен deleteProperty усли свойства и без нее удаляются просто по команде delete op.prop?

  • @user-xv9ns3cf4v
    @user-xv9ns3cf4v Před 4 lety +1

    Извините за тупой вопрос, а разве просто через классы то же самое сделать нельзя?

    • @inoplanetyanya
      @inoplanetyanya Před 3 lety

      Вы нашли для себя ответ на этот вопрос? Меня он тоже мучает.

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

    +

  • @user-kq1ei8wk4c
    @user-kq1ei8wk4c Před 4 lety

    какой у тебя стаж?

    • @VladilenMinin
      @VladilenMinin  Před 4 lety

      на канале есть ответы
      Больше 7