Тёмный

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

Владилен Минин
Подписаться 308 тыс.
Просмотров 146 тыс.
50% 1

Получить профессию 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. Чт...

Опубликовано:

 

9 июл 2019

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 227   
@andriihelever1793
@andriihelever1793 4 года назад
Посмотрел прошлое видео и забыл поставить лайк, и начал смотреть это и что чувство такое как будто забыл что то важное, как вспомнил вернулся, поставил лайк и теперь смотрю дальше!!!
@mels4886
@mels4886 Год назад
Первый раз посмотрел - нечего не понял, спустя неделю посмотрел ещё раз, нечего не понял, прошло некоторое время, посмотрел, и снова нечего. Сегодня решил снова посмотреть, но что то подсказывало что на этот раз пойму, и я все понял, на этот раз все было понятно. Владилен ты лучший, продолжай делать такие крутые ролики
@zahar1979
@zahar1979 Год назад
что то я сомневаюсь что в 4 раз ты все понял
@TheLNMA
@TheLNMA 5 лет назад
Большое спасибо за старание и понятную подачу информации.
@vandrounik_pa_domu
@vandrounik_pa_domu 3 года назад
Крутые видео, Владилен! Без твоих стараний мне было бы гораздо сложнее изучать JS, спасибо! Жду новых видео
@user-xh2og5bv7q
@user-xh2og5bv7q 4 года назад
Спасибо Владилен,у вас очень понятная модель изложения информации.
@zmeygorynych5684
@zmeygorynych5684 3 года назад
Полезный материал, однозначно лайк. Успехов тебе Владилен
@jjjj-wo6np
@jjjj-wo6np 2 года назад
Владилен, вы - невероятный. Огромное Вам спасибо! Лучший учитель в русскоязычном сегменте!
@alexandrelagin5490
@alexandrelagin5490 5 лет назад
Спасибо, интересное видео. Уже заинтригован следующими видео с примерами Proxy.
@VladilenMinin
@VladilenMinin 5 лет назад
У вас уже есть идеи как применить Proxy?) Примеры я приведу в следующем ролике
@s.konstantin
@s.konstantin 5 лет назад
Пока не знаю, может пригодится. Спасибо!
@VladilenMinin
@VladilenMinin 5 лет назад
@DJ MIAMI Думаю тебе стоит начать с более простых вещей в таком случае
@alexs7931
@alexs7931 4 года назад
Я думал щас будет пример как сделать свой HashMap аналог Java, формула расчёта hash уже есть в сети, осталось только реализовать механизм поиска коллизий. Спасибо это очень полезные уроки, бывает случаи когда приходится работать со старым кодом, который нужно перенести на новый движок. Так вот с помощью этих примеров можно обернусь все что угодно в красивые, и приятные для использования методы, которые будут брать на себя всю рутину по общению со старым кодом.
@VorobyevAlexander
@VorobyevAlexander 4 года назад
Первым в голову пришло: использовать для отладки....
@olegsubik
@olegsubik 4 года назад
если я все правильно понимаю, то mobx работает на Proxy. раньше это было типа: "работает? ну и хорошо)". так хоть понимаю что это
@user-bp3vk3uj8h
@user-bp3vk3uj8h 2 года назад
Отменное видео! Спасибо, Владилен!
@mineralnone3684
@mineralnone3684 Год назад
Спасибо за видео! Очень интересно слушать Вас.
@user-qj2yg1rn3j
@user-qj2yg1rn3j 4 года назад
Спасибо! Ничего не понял)
@andTutin
@andTutin 4 года назад
Жиза
@dmitrap1982
@dmitrap1982 3 года назад
lol'
@alym.aleksey
@alym.aleksey 3 года назад
Потому что он ничего не объяснил
@TheRelow
@TheRelow 3 года назад
@@alym.aleksey Ничего не объяснил? Как ты себе представляешь "настоящее объяснение"?
@user-xs4bp9uu1h
@user-xs4bp9uu1h 3 года назад
Ставлю палец вверх еще не посмотрев!
@SanchoXDE1337
@SanchoXDE1337 4 года назад
Спасибо за труд!
@ilyalevtsov9266
@ilyalevtsov9266 2 года назад
Отличное видео! Надо подумать куда его применять все же.
@orbismala8124
@orbismala8124 2 года назад
Спасибо за видео. В конце фишка особенно понравилась.
@user-kv4bv3ms1d
@user-kv4bv3ms1d 3 года назад
Спасибо за твои уроки.
@lumeaceaiuluisrl6343
@lumeaceaiuluisrl6343 3 года назад
Владилен, спасибо ! Я новичок и мне не всегда с первого раза всё понятно, но Вам удаётся сложные вещи так преподнести, что они кажутся не такими уж и страшными) Это талант!
@r45her
@r45her Год назад
Тема интересная, но за 2 года хоть раз пригодилось это?)
@user-ys8vm6mc5b
@user-ys8vm6mc5b 7 месяцев назад
емко и понятно. спасибо, автор!
@arthurhovhannisyan31
@arthurhovhannisyan31 4 года назад
Владилен, давай контент по докеру. Будет просто пушка!
@maksymovych_maksym
@maksymovych_maksym 4 года назад
Спасибо труд! Однозначно лайкоцит!!
@VitalikAwesome
@VitalikAwesome 4 года назад
Лучший!!! Продолжай в том же духе.!!
@user-tg9wd2hm1g
@user-tg9wd2hm1g 4 года назад
Благодарю Вас Владилен!) Вы очень толково все объясняете. Жду новых видео)
@MrFeedme86
@MrFeedme86 4 года назад
Вооу, последний пример про age_name_job просто отрыв бошки, невероятно круто!
@Diman1337
@Diman1337 4 года назад
Я поднялся на ступеньку выше благодаря этому видео, спасибо
@temeralin.t
@temeralin.t 3 года назад
вау, классный и необычный пример в конце!! топ
@raminhesenov1376
@raminhesenov1376 Год назад
Большое спасибо за видео!
@RewCSharp
@RewCSharp 5 месяцев назад
Спасибо за урок!
@TrayHardPlay
@TrayHardPlay 5 лет назад
Очень большая просьба - лучше начинай подобные уроки с примеров применения. Чтобы было сразу понятно, зачем вообще это нужно, для чего это учить, что оно дает. Потому что иначе смотреть тяжеловато и скучновато. Понятно, что будут те, кто в любом случае досмотрит, но если хочешь максимально всех охватить, то лучше всё-таки начинать как и любые публичные выступления - с актуальности обсуждаемой далее темы или технологии. Энивей за урок спасибо)
@VladilenMinin
@VladilenMinin 5 лет назад
Я очень думал, как сделать это с прокси и понял, что конкретно в этом случае лучше тот порядок, что я дал Тема не самая простая и начальные примеры могли бы только запутать Но я обращу внимание на это, благодарю
@multidotha
@multidotha 5 лет назад
@@VladilenMinin все супер! Но я тоже за то, чтобы в уроке был маленький практический пример. Спасибо!
@user-ff8sm5qr8n
@user-ff8sm5qr8n 4 года назад
Классные видосы! Спасибо!
@sekirogenshiro2210
@sekirogenshiro2210 4 года назад
мудрено!
@paulparker3664
@paulparker3664 4 года назад
спасибо, очень нравится
@user-vr1mf1ig2j
@user-vr1mf1ig2j 9 дней назад
Огромное спасибо за ваш труд, все очень интересно и познавательно... но что я заметил во всех(почти) обучающих видео. Все учат писать код, каким то фишкам, паттернам, синтаксису и т.д. Но мало кто учит программировать, а именно объяснять как это все применяется в боевой задаче, ну или хотя бы видеть какой-нибудь полезный результат от своей программы. Очень сложно все это осознать если ты не понимаешь где это можно применить. Ну и добавлю от себя что самое лучшее это взять для себя какую-нибудь задачу и попытаться ее реализовать(гугля, читая доку и т.д.)
@user-sn5zm7ml3w
@user-sn5zm7ml3w Год назад
Спасибо, ты лучший!
@User-kn3gv
@User-kn3gv 4 года назад
Владилен ты супер, брат.привет тeбe c Еревана!!!
@samgasper99
@samgasper99 2 года назад
Жесть он крууут! Смотри брат что он творит!
@AsVit
@AsVit 4 года назад
Конечно это очень полезный ролик, и конечно - очень понравился! :-) Спасибо большое!!!
@vladimirww5152
@vladimirww5152 3 года назад
Классно! Прокси в JS
@user-je8md1kc7u
@user-je8md1kc7u 3 года назад
Я не пробовала разобраться в этом всём сама, но видно, что материал сложный и без вашего объяснения было бы тяжко. Спасибо вам за уроки
@ilnurryazhapov9377
@ilnurryazhapov9377 4 года назад
Здорово продолжай
@vitalii.pohoretskyi
@vitalii.pohoretskyi 4 года назад
Поддержка иммутабельности дело конечно святое, но когда в обьекта овер 3 вложености и это все нужно постоянно копировать.. Решил добавить в проект библиотеку immer и как оказалось ее функционал построен на прокси, вот и пришло время посмотреть этот урок :) Все просто и понятно обьяснил, спасибо!
@petrvictorovich
@petrvictorovich 2 года назад
Прикоольно!
@MrAirrussia
@MrAirrussia 5 лет назад
ёмоё вот что бывает, когда не изучаешь новые фишки. Я всё это сам делал через наследование. Зачёт
@Shkur777
@Shkur777 4 года назад
Вот последняя конструкция очень заинтересовала
@user-md3rv2tf5f
@user-md3rv2tf5f Год назад
Лучший!
@overseer7591
@overseer7591 2 года назад
Красавчик и спасибо, ушёл от Фрилансера по жизни!
@stanislavmalyshev5209
@stanislavmalyshev5209 3 года назад
Мотивация для создания нового контента +
@user-cn4zh7jy4s
@user-cn4zh7jy4s 3 года назад
Спасибо. Ничего не понял, НО! Очень интересно!
@alexanderdiakonov1340
@alexanderdiakonov1340 Год назад
Пасиб дядь... Помог
@artemijeka
@artemijeka 2 года назад
Спасибо
@GGSoft2009
@GGSoft2009 4 года назад
Thanks
@user-kg6fz5tz2b
@user-kg6fz5tz2b 5 лет назад
Спасибо!
@VladilenMinin
@VladilenMinin 5 лет назад
Приятного просмотра)
@ivanp7697
@ivanp7697 4 года назад
збс внатуре четко!
@Kreator321RG
@Kreator321RG 4 года назад
Наверное ты первый кто смог рассказать о Proxy просто и понятно)) Спасибо)
@VladilenMinin
@VladilenMinin 4 года назад
Я старался, благодарю)
@danyawyse1933
@danyawyse1933 Год назад
10:06 Можно вместо return true перед строчкой delete target[prop] прописать return return delete target[prop]; и будет возвращать true
@IgorNovakus
@IgorNovakus 7 месяцев назад
Если я не ошибаюсь - при создании стрелочных функций, нельзя перебить контекст родителя в котором она была создана. Тоесть this будет получен от родителя, поэтому их лучше не делать методами объектов и apply работать не будет. А видео топчик!
@andreyperetyatko913
@andreyperetyatko913 4 года назад
Спасибо, что ты есть)) Очень круто обьясняешь)) Я прям все до буквы понял) Хотя педалю на С#
@coolfilms1545
@coolfilms1545 3 года назад
Дякую!
@vanya_hrynkiv
@vanya_hrynkiv 4 года назад
комментарий лайк, подписка, колокольчик
@PornerIgor
@PornerIgor 2 года назад
Норм так
@user-bx7ly2th3b
@user-bx7ly2th3b 4 года назад
в методе has можно было использовать Object.keys(target).includes(prop)? по последнему примеру в видео: разве через обычный геттер для класса, о которых ты рассказывал ранее, нельзя сделать то же самое?
@accelerator5434
@accelerator5434 2 года назад
У меня за окном взрывы, но мне без разницы я учу JS
@ignatmv.8654
@ignatmv.8654 4 года назад
Часть методов прокси обязательно должны возвращать инварианты (set, deleteProperty и далее по спецификации).
@user-xk2xl8hb8i
@user-xk2xl8hb8i 4 года назад
Спасибо, ты крутой)
@dmitryzarubin4835
@dmitryzarubin4835 3 года назад
А чем отличаются get и set в Proxy от свойств в Object.Create?
@ghost8652
@ghost8652 3 года назад
Если я правильно понял, то посредством Proxy, возможно осуществлять инкапсуляцию и полиморфизм в классах?
@someqwerty3115
@someqwerty3115 7 месяцев назад
❤‍🔥🔥🔥🔥
@mihhailk4749
@mihhailk4749 4 года назад
Ochen kruto.
@user-wv7bq4je8g
@user-wv7bq4je8g 3 года назад
Все никак не могу понять одну вещь: откуда берутся дизлайки? Кто эти 15 человек? Что им могло не понравится? Наверное, эти вопросы навсегда останутся без ответа) Контент сверхмощный. Спасибо за это тебе, Владилен! Особенно радуют те детали, и мелкие фичи, на которые сам бы никогда не обратил внимания и которые не так уж легко найти в учебниках или других материалах для обучения. Дерзай дальше, Владилен!) Не останавливайся и не обращай внимания на эти 15 человек) ибо не ведают они, что творят)
@lastfornit
@lastfornit 3 года назад
не переживайте. я читал, что дизлайки также помогают продвигать видео, как и лайки. типа, контент вызывает отклик и эмоции у юзера, а уж положительный или отрицательный - это вторично для ютуба. главное, чтоб смотрели.
@mukhammadrustambayev2051
@mukhammadrustambayev2051 5 лет назад
все понятно, Proxy типа декоратор.
@VladilenMinin
@VladilenMinin 5 лет назад
Да, можно и так сказать. Но людям из чистого JS не знаком концепт декоратора)
@mukhammadrustambayev2051
@mukhammadrustambayev2051 5 лет назад
@@VladilenMinin от вас жду урок про vue-class-components, vue-property-decorator
@VladilenMinin
@VladilenMinin 5 лет назад
@@mukhammadrustambayev2051 Будет Я сейчас курс доделываю и потому немного притормозил с ютубом. Временно
@mukhammadrustambayev2051
@mukhammadrustambayev2051 5 лет назад
спасибо :)
@javokhirrakhimov8241
@javokhirrakhimov8241 4 года назад
Может быть лучше использовать QuokkaJS вместо браузера раз все равно на VS Code?)
@johnstrayk5208
@johnstrayk5208 4 года назад
Владилен, или может кто-другой, почему если из объекта person удаляешь поле name, метод has при вызове поле name все равно возвращает true? По идее в объекте на который ссылается прокси этого поля нет. И обратное из массива удаляем name и возвращаем name в персон и has возвращает false. Получается в prop попадает сам созданный массив, а не прокси сформированный на основе объекта person?
@user-hp5hw8su8q
@user-hp5hw8su8q 4 года назад
"name_age" - it `s Magic
@VladilenMinin
@VladilenMinin 4 года назад
Прокси творят чудеса)
@user-hp5hw8su8q
@user-hp5hw8su8q 4 года назад
Сделал как на уроке, похвалился сотруднику ))) он фулсток по js, и он был приятно удивлён!
@VladilenMinin
@VladilenMinin 4 года назад
@@user-hp5hw8su8q здорово! Ты его удивишь, если посмотришь следующее видео)
@LoveleTi
@LoveleTi 4 года назад
Получается тоже самое можно сделать через наследование ?
@user-bx7ly2th3b
@user-bx7ly2th3b 4 года назад
Когда я проксирую класс (MyClass), у меня в методах этого класса теряется this (становится this = Proxy). Если методы класса объявить, как стрелочные функции, то this сохраняется (this = MyClass), но перестают работать геттеры и сеттеры Proxy. Как быть?
@cyclopentanpergidrophenantren
@cyclopentanpergidrophenantren 4 года назад
интересно, а proxy воздействует на объект изменяя его или клонируя. Я так понимаю с помощью данного класса можно реализовать метод фабрика и реализовать блокирование множественного подключения к БД? Или же это закос на Reflection class api. Почему приходится прибегать к proxy, а не реализовать данную вещь как метод класса. А может это призрак полиморфизма? Я логику понять не могу
@user-by4sz6is2h
@user-by4sz6is2h 2 года назад
А в чем разница вывода функции в proxy: return target.apply(thisArg, args) и return target(args) ? Вроде одинаково все работает, но 2 способ короче
@user-yg8nh2ek6w
@user-yg8nh2ek6w 4 года назад
Владилен, давай контент по Redux-Saga. Будет просто пушка! )
@VladilenMinin
@VladilenMinin 4 года назад
Есть немного на канале
@user-yg8nh2ek6w
@user-yg8nh2ek6w 4 года назад
@@VladilenMininДа есть немного, я недавно смотрел твой миникурс (в одном видео) по редакс. Показалось по саге как то бегло, решил сам еще немного подтянуть. Мало нормальной инфы
@Denis-hl2yz
@Denis-hl2yz 4 года назад
Интересно почему не оперируешь терминами АОП, парадигмами ООП, ты же их реализовуешь) Или у фронтендщиков еще так не принято или я ошибаюсь?
@top-mma-news
@top-mma-news 3 года назад
Я новичок в изучении жс, тема конечно для меня очень сложная, но то как ты объясняешь в принципе понятно, просто пока не понимаю как это все применять на практике и такое бы уж точно не повторил, надеюсь все придет с опытом. Спасибо!
@VladilenMinin
@VladilenMinin 3 года назад
Следующее видео для тебя как раз
@top-mma-news
@top-mma-news 3 года назад
Владилен Минин посмотрел следующее видео, тяжеловато конечно, буду пересматривать и вникать, спасибо за материал!
@ayubkhan_dev
@ayubkhan_dev 2 года назад
Извините у вас есть шпаркалка по JS?
@artem031294
@artem031294 4 года назад
Самый, на мой взгляд, очевидный пример использования - это написание обертки для различного функционала. Как пример: API мессенджеров, пиш.ем свою Proxy обертку с методами, а target-ом указываем классы мессенджеров (Vk, Te, WA). Причем в этих классах, методы обертки могут быть не реализованы
@VladilenMinin
@VladilenMinin 4 года назад
Хороший частный случай. Абсолютно верно Если пойти дальше, то любые API запросы можно проксировать. Далее с помощью прокси делать интерсепторы и получать новый axios, который вроде на прокси и построен)
@artem031294
@artem031294 4 года назад
@@VladilenMinin на столько глубоко не копал, для меня пока axios - это замена $.ajax ))
@artem031294
@artem031294 4 года назад
@@VladilenMinin а ещё похоже на Mock объекты в PHPUNit
@brick2h720
@brick2h720 4 года назад
По поводу подачи материала вопросов нет, но в целом даже и не знаю что сказать.. нужно мыслить в парадигме Владилена и иметь за плечами не один год опыта, что бы понимать зачем это все нужно, к чему эти детальные обертки..
@VladilenMinin
@VladilenMinin 4 года назад
Свой канал я позиционирую не как для новичков. Этот плейлист - самый простой материал, что будет на канале
@kirillgavrilov9681
@kirillgavrilov9681 4 года назад
@@VladilenMinin , отлично! Спасибо тебе за такой контент и подачу материала
@user-xw3ek8sf9t
@user-xw3ek8sf9t 5 лет назад
Вопрос , а в чем разница между Proxy и аксессорами (надеюсь правильно написал ?
@islambabaev7120
@islambabaev7120 3 года назад
У Proxy побольше методов
@user-vn1uq2te9u
@user-vn1uq2te9u Год назад
Владилен я не понимаю уроки по JS напиши мне как подтянуть JS до прохождения курса. Спасибо
@user-lv3ex9yc9e
@user-lv3ex9yc9e 2 года назад
Владилен, значения присваиваются и без сеттера. Кроме ошибки он получаетя не зачем не нужен, также можно с сеттером отдним работать без геттера.
@Chambo015
@Chambo015 Год назад
set должен вернуть true при успешной установке значения
@navi4046
@navi4046 4 года назад
Спасибо за твои уроки, но я так и не понял когда это можно применить
@VladilenMinin
@VladilenMinin 4 года назад
Следующее видео с примерами
@KostiaBazrov
@KostiaBazrov 4 года назад
Монстер
@user-yx3pu7gg7h
@user-yx3pu7gg7h 3 года назад
Не понятен смысл передачи в качестве аргумента thisArg при проксировании функции. Прочитал, что это контекст this. Но, если добавить в хэндлер вывод в консоль, что такое thisArg, получаю undefined. При этом, когда делаю return target.apply(thisArg, args) вместо thisArg можно указать все что угодно, пустой массив/объект, любую строку, число ... и при этом все работает.
@igori6471
@igori6471 8 месяцев назад
Вот-вот, это такой непонятный момент, а он его не объясняет, вроде как будто по-умолчанию понятно должно быть...
@Medulla_oblongata01
@Medulla_oblongata01 3 года назад
Спасибо за урок. Но если честно, ничуть не просто. Мне кажется, надо на примерах из реальных проектах показывать, зачем это вообще нужно?
@snakeguy2181
@snakeguy2181 3 года назад
12:18, зачем здесь "thisArg", что он делает и как, не пойму. Заранее спасибо за ответ.
@volodymyrdoskochinskiy5032
@volodymyrdoskochinskiy5032 3 года назад
Это контекст
@user-xv9ns3cf4v
@user-xv9ns3cf4v 3 года назад
Извините за тупой вопрос, а разве просто через классы то же самое сделать нельзя?
@inoplanetyanya
@inoplanetyanya 3 года назад
Вы нашли для себя ответ на этот вопрос? Меня он тоже мучает.
@alexcool
@alexcool 3 года назад
Благодарю за доходчивые видео, Владилен. Хочу обратить Ваше внимание на точность формулировок ибо от Вас, как от учителя зависит ясность мыслей учеников. 8:45 "Данный метод ПОЗВОЛЯЕТ нам удалять...". 1. Метод не может нам позволять или не позволять делать что-либо, ибо не одушевлен. Это Мы, с его помощью можем что то делать. Фраза "Метод позволяет..." делает программиста рабом метода (машины), тогда как фраза "С помощью метода мы можем ..." наделяет нас руководящий функцией, а метод остается всего лишь инструментом в умелых руках. 2. Этот метод не удаляет, а вызывается в ответ на попытку удалить проп. Это утверждение более истинное, ибо мы можем перепределить метод таким образом, что он не будет ничего удалять или будет удалять что то другое. Обратите внимание, как формулировка расширяет наши возможности и закладывает возможности для нестандартного мышления. Еще раз благодарю за видео. Надеюсь на понимание.
@dmitrykirilenko9293
@dmitrykirilenko9293 3 года назад
перегрузка)
@user-yc4wm1ch6p
@user-yc4wm1ch6p Год назад
Этот синтаксис все еще актуален?? или уже некоторые не рабочие?
@sekirogenshiro2210
@sekirogenshiro2210 4 года назад
Использовал прокис на практике?
@VladilenMinin
@VladilenMinin 4 года назад
Да, для оптимизации рендеринга графиков
@davtian1674
@davtian1674 4 года назад
set () { return Object.keys(target).indexOf(prop) !== -1 // true or false }
@wither-it-channel
@wither-it-channel Месяц назад
Ну я могу ещё раз написать))) Читайте руководство learnjs тема «Proxy». Так не поймёте
@akhmedmagomedov324
@akhmedmagomedov324 2 года назад
зачем нкжен deleteProperty усли свойства и без нее удаляются просто по команде delete op.prop?
@user-ge2qk4cm1j
@user-ge2qk4cm1j 3 года назад
+
Далее
ОВР Шоу: Друг-душнила @ovrshow_tnt
11:15
Actual use case for JavaScript PROXY!
13:09
Просмотров 10 тыс.
TypeScript - Быстрый Курс за 70 минут
1:08:00