background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

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

input logo icon
Теги видео
|

Теги видео

js
javascript
владилен
владилен минин
урок js
урок javascript
proxy
js proxy
javascript прокси
прокси
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:02
про то что такое прокси но учитывая что
00:00:05
данная тема достаточно обширная я решил
00:00:08
разделить ее на две части в этом ролике
00:00:12
мы поговорим про теорию связанную с
00:00:14
прокси
00:00:15
а в следующем видео мы поговорим про
00:00:17
некоторые практические применения данная
00:00:20
технология перед тем как мы начнём я
00:00:23
напомню что подписка на данный канал
00:00:25
like и комментарии помогают в
00:00:27
продвижении видео и дают еще больше
00:00:29
мотивации для создания подобного
00:00:31
полезного контента и теперь давайте
00:00:35
приступать к теме сегодняшнего видео
00:00:37
прокси что такое прокси
00:00:40
по сути это некоторый класс в java
00:00:45
скрипт который позволяет создавать
00:00:46
различные ловушки для объектов функции
00:00:50
классов и так далее зачем это все нужно
00:00:53
давайте разбираться и для начала я
00:00:55
создам обычный объект person у которого
00:00:59
будут по стандарту некоторые поля
00:01:01
например поля name
00:01:02
владилен аж 25 и пусть будет jobe full
00:01:06
stack теперь мы можем пользоваться
00:01:11
данным объектом но здесь нет ничего
00:01:14
необычного что более интересно мы можем
00:01:17
его
00:01:18
запроектировать и давайте я здесь пишу
00:01:20
комментарии
00:01:21
перед тем как мы начнем что это мы будем
00:01:23
разбирать сейчас объекты для того чтобы
00:01:26
запроектировать объект person мы можем
00:01:28
создать какую-нибудь новую переменную я
00:01:30
назову ее объект прокси
00:01:33
opi и не и я положу значение результаты
00:01:38
работы оператора new и глобального
00:01:40
класса прокси в конструктор данного
00:01:45
класса мы должны передавать два
00:01:47
параметра
00:01:48
первый параметр это некоторые таргет то
00:01:51
есть та цель на которую мы хотим
00:01:53
повесить прокси в нашем случае это
00:01:55
объект просим вторым параметром мы
00:01:58
передаем набор хендлеров то есть те
00:02:03
методы которые позволяют сделать так
00:02:05
называемые ловушки для данном случае для
00:02:07
объекта например мы можем реализовать
00:02:10
здесь метод get метод get a он принимает
00:02:14
себе два параметра это таргет и
00:02:16
некоторый проб и что обычно делает метод
00:02:20
get да он что-то возвращает пока здесь
00:02:24
напишем беру черный таргет проб то есть
00:02:27
мы обращаемся таким образом к объекту
00:02:29
таргет и к его ключу проб и посмотрим
00:02:32
как это работает
00:02:33
значит если я обновлю страницу и
00:02:35
обращаюсь не к объекту просим я
00:02:38
обращаюсь к объекту л.п.
00:02:40
потому что мы работаем сейчас прокси и
00:02:42
попробую у него вызвать допустим поле
00:02:46
name как видите мы получаем здесь
00:02:50
значения владилена да если мы здесь
00:02:52
напишем допустим поле и что мы получаем
00:02:54
25 то есть данные прокси
00:02:57
он по сути повторяет функционал объекта
00:02:59
но в чем же его идея а идея здесь
00:03:02
заключается в том что у нас теперь
00:03:04
поставлена ловушка на метод get и здесь
00:03:08
мы можем допустим в консоли написать
00:03:09
следующее скажем таргет таргет и
00:03:16
например вывести значение поля проб
00:03:20
теперь если обновлю страницу и попробую
00:03:23
обратиться например колледж то помимо
00:03:26
того что мы получаем некоторое значение
00:03:28
в нашем случае 25 мы также получаем те
00:03:32
концу и логе которые мы описали то есть
00:03:35
в качестве значения торги то мы получаем
00:03:37
непосредственно сам объект над которым
00:03:39
мы ставим прокси в качестве значения
00:03:42
проб и мы получаем в строковом формате
00:03:43
название поля которым мы обращаемся то
00:03:46
есть если мы допустим напишем здесь opi
00:03:49
nail там и здесь получим значение name и по
00:03:53
сути вся идея прокси и заключается как
00:03:55
раз таки в этом концепте
00:03:56
что мы реализуем некоторые ловушки и
00:04:00
внутренних мы можем переписывать
00:04:02
функционалу базовый давайте пока я удалю концы логин
00:04:06
разберем еще некоторые ловушки которые
00:04:08
можем сделать прокси единственное что я
00:04:11
здесь для наглядности оставлен
00:04:12
console.log
00:04:13
например getting проб и здесь название
00:04:17
про побудет в общем тонизация на самом
00:04:23
деле в proxy существует большое
00:04:25
количество различных методов и ссылку на
00:04:28
полную документацию я оставлю в описании
00:04:30
к этому ролику мы все эти методы
00:04:32
разбирать не будем разберём только на
00:04:34
мой взгляд самые основные безусловно
00:04:37
метод get является одним из основных тем
00:04:40
не менее мы можем также что
00:04:41
реализовывать здесь метод сет он
00:04:44
работает очень похожим образом то есть
00:04:45
он принимает себя сам таргет то есть
00:04:48
нашем случае это объект person значение
00:04:50
поля проб и некоторые вылью до который
00:04:53
мы хотим добавить здесь мы можем
00:04:55
написать простую логику
00:04:57
то есть допустим мы значению объекта
00:05:00
таргет по полю проб не про пса проб
00:05:05
будем задавать значения в нём но
00:05:08
допустим мы также можем переписать эту
00:05:09
логику то есть спросить если сейчас
00:05:14
проб находится в объекте таркетт то
00:05:18
тогда мы будем делать эту логику а если
00:05:21
мы допустим пытаемся задать какой-то
00:05:22
несуществующей проб то есть иначе мы
00:05:26
можем допустим выкинуть ошибку фрау
00:05:28
newer
00:05:29
написать что новых допустим проб field
00:05:38
in таргет например что нибудь в этом
00:05:40
духе теперь как это будет работать да то
00:05:43
есть я обновлю страницу еще раз обращу
00:05:46
ваше внимание на то что мы все время
00:05:48
работаем именно с объектом л.п.
00:05:50
а то есть про объект прошлом мы можем в
00:05:52
данном случае забыть а потому что мы его
00:05:54
проектируем и прокси работает с новым
00:05:56
объектом допустим здесь ему сказать что
00:05:59
у пейдж равно например 26 нажимаю enter
00:06:05
и получаем 26 если мы посмотрим на
00:06:07
объект lp
00:06:08
то мы увидим что у него есть поле edge
00:06:11
который равняется 26 то есть мы его
00:06:14
успешно изменили но если я допустим
00:06:17
задам какой-нибудь несуществующие поле
00:06:19
например
00:06:20
кью кью кью за то моим значение 2 то как
00:06:25
видите мы получаем здесь кастомную
00:06:26
ошибку то есть сеттер нам грубо говоря
00:06:30
во лидирует да что такого поля у нас в
00:06:32
объекте нет и поэтому мы не можем его
00:06:34
изменить и как вы понимаете здесь можно
00:06:37
написать абсолютно любую логику которая вам будет
00:06:39
удобно именно для решения текущих задач
00:06:42
и еще один полезный метод которые есть в
00:06:47
прокси для объектов называется с и да
00:06:50
иногда он используется то есть он тоже
00:06:52
принимает себе некоторые таргет
00:06:54
некоторые проб и здесь мы можем
00:06:59
прописать логику то есть не тот хадис он
00:07:02
должен вернуть значение либо true либо
00:07:03
фолз который будет говорить если такое
00:07:06
поле в объекте
00:07:09
допустим я могу здесь написать следующее
00:07:12
логику то есть у нас скажем будет
00:07:13
необычный объект у него может быть всего
00:07:16
лишь три поля поля name edge и job
00:07:19
больше у него полив принципе быть не
00:07:20
может то есть такая задача у нас прокси
00:07:23
и поэтому здесь я могу сделать следующим
00:07:26
образом я могу завести массив из строк
00:07:29
описывающих все поля которые у нас есть
00:07:31
то есть экшн и job и с помощью метода in
00:07:35
clouds спросить если в данном массиве
00:07:38
есть поле
00:07:40
проб то тогда мы вернем здесь значение
00:07:43
true но если мы сюда будем передавать
00:07:47
какой-то неправильный параметр до
00:07:49
которые не содержатся данном массиве то
00:07:51
тогда мы будем получать значение false
00:07:53
давайте посмотрим допустим мы можем
00:07:56
спросить если строка допустим name in
00:08:02
толпе
00:08:03
как видите мы здесь получаем значение
00:08:05
true да то есть поля name у нас
00:08:07
действительно находится в proxy
00:08:09
а если допустим поля т2 и науки
00:08:13
видеть мы здесь получаем фолз что
00:08:16
интересно мы можем допустим удалить поля
00:08:18
name и повторить вызов первая функция то
00:08:24
есть на самом деле в proxy сейчас
00:08:26
присутствует поле name
00:08:27
но учитывая что мы переписали логику
00:08:29
для методах с как видите мы здесь
00:08:33
получаем значение falls
00:08:34
то есть мы можем также придумывать свои
00:08:36
какие-то костанай валидации следующий
00:08:40
метод который я хочу разобрать
00:08:41
называется делить property
00:08:45
данный метод позволяет нам удалять
00:08:48
какое-то свойство из объекта где мы
00:08:51
также получаем некоторые таргет также
00:08:53
получаем проб ну и допустим весь я могу
00:08:56
просто написать в консоль им console.log
00:08:59
делить young не допустим дети напряжён
00:09:03
значение проб можно по-другому написать
00:09:06
идея в том что вы просто показать в
00:09:08
консоли что у нас происходит процесс
00:09:10
удаления
00:09:11
после этого мы также можем добавлять
00:09:13
любые условия любые валидации для того
00:09:16
чтобы как-то усложнить доработала
00:09:20
удаление но самый простой пример быть бы
00:09:22
повторить нативную функцию то есть с
00:09:24
помощью оператора делить указать что мы
00:09:26
удаляем у торги то значение проб если мы
00:09:30
посмотрим сейчас на наш прокси и
00:09:33
попробуем допустим удалить него поле
00:09:35
эйдж
00:09:36
с помощью оператора делить то как видите
00:09:39
мы здесь получаем во первых console.log
00:09:42
делить young эйдж и получаем значение
00:09:44
falls если мы посмотрим сейчас на сам
00:09:47
апраксин то мы найдем в нем никакого
00:09:51
значения h да потому что мы его удалили
00:09:54
то есть для того чтобы вас нам не
00:09:56
выдавался после того как мы удалили мы
00:09:58
можем вернуть значение true
00:10:00
если бы мы не удаляли какое-то значение
00:10:02
то тогда мы бы вернули здесь значение
00:10:04
false и в принципе что касается объектов
00:10:08
мы основное разобрали до то есть
00:10:10
повторюсь что более подробная
00:10:12
документация вы сможете найти ее в
00:10:14
ссылке в описании к этому ролику
00:10:18
однако прокси на этом не заканчивается и
00:10:21
в proxy присутствует еще большое
00:10:23
количество функционала до который я бы
00:10:25
хотел вам показать
00:10:26
поэтому сейчас мы будем говорить с вами
00:10:28
про функция который мы также можем
00:10:31
практиковать
00:10:32
сейчас я покажу базовый пример
00:10:34
использования проксирование над
00:10:36
функциями поэтому
00:10:38
мы заведем какое-нибудь элементарную
00:10:40
функцию допустим я назову ее лоб она
00:10:44
будет принимать себя некоторый текст и
00:10:46
все что она будет делать она нам будет
00:10:47
возвращать
00:10:49
строчку лог со значением текст то есть
00:10:53
того параметра то есть иными словами вы
00:10:55
функции мы будем передавать некоторые
00:10:57
тексты он будет нам добавлять ему такую
00:10:59
такой префикс словом да мы можем в этом
00:11:02
убедиться что функция работает вызов и
00:11:04
написать например здесь вот такую
00:11:07
строчку
00:11:08
да и как видите мы получаем красивый
00:11:10
результат нас больше интересует именно
00:11:13
сам факт того что функция работает да
00:11:15
они ее действительно
00:11:17
функциональная составляющая на текущий
00:11:19
момент теперь что мы можем сделать с
00:11:23
этой функцией из прокси по сути мы можем
00:11:26
создать переменную по function прокси
00:11:29
то есть до этого я создавала облик
00:11:32
прокси теперь у меня fan gym прокси и
00:11:34
безусловно мы создаем прокси с помощью
00:11:37
конструкции нее прокси теперь первым
00:11:42
параметром мы также по аналогии передаем
00:11:44
сюда некоторые таргет только теперь
00:11:46
нашем случае это уже будет функция лог а
00:11:49
вторым параметра мы передаем объект
00:11:51
хендлеров и теперь если мы в качестве
00:11:56
таргета указали функцию то мы можем
00:11:58
отследить когда данная функция будет
00:12:01
вызываться и для этого мы реализуем
00:12:03
здесь метод и play do me that play он
00:12:08
принимает себя три параметра
00:12:11
первый параметр t таргет то есть там
00:12:13
функция да как но который мы проектируем
00:12:15
нашем случае это функция лог дальше мы
00:12:18
принимаем некоторые параметры biz org и
00:12:22
принимаем параметр арк рей или просто
00:12:26
аркс можно назвать его в принципе вы
00:12:30
можете поставить на паузу видео и
00:12:33
сделать console.log
00:12:34
каждого из этих параметров посмотреть
00:12:35
что он обозначает но если тезисно the
00:12:38
targeted и сама функция в арк это
00:12:42
контекст если мы его передавали допустим
00:12:44
с помощью метода кол или баян
00:12:46
и массив аркс это все параметры которые
00:12:50
мы передаём в нашу функцию то есть в
00:12:53
случае функция лак мы будем принимать
00:12:56
массив состоящие из одного элемента
00:12:58
текста что мы теперь можем сделать в
00:13:02
данном методе
00:13:03
ну во первых мы можем выполнить любую
00:13:06
логику которую хотим допустить я напишу
00:13:09
calling fn и дальше если мы останемся в
00:13:15
таком виде то функция точнее даже
00:13:19
переменная f пи не будет работать потому
00:13:22
что мы перехватили вызов функция
00:13:24
log но здесь мы ничего не сделаем кроме
00:13:27
тог называем console.log поэтому нам
00:13:30
было бы желательно вернуть какое то
00:13:32
здесь значение и выполнить саму функцию
00:13:34
для этого мы можем обратиться к
00:13:37
переменной таргет то есть эта сама
00:13:39
функция и если вы помните то я выпускал
00:13:43
урок про контекст где рассказываю как
00:13:45
работают методы колба interplay
00:13:47
так вот здесь для того чтобы вызвать эту
00:13:49
функцию мы можем применить метод тёплой
00:13:53
и
00:13:54
именно метод up like потому что обычно у
00:13:57
нас неизвестное количество аргументов
00:13:59
а нет это play удобен тем что он
00:14:00
принимает массив аргумент да и тем самым
00:14:02
можем работать здесь с любым количеством
00:14:06
параметров то есть это абсолютно
00:14:08
универсальное решение первым параметром
00:14:11
в этот лай мы передаем контекст нашем
00:14:14
случае это диск аркс да если он будет
00:14:16
равняться нулю то в принципе нас ты не
00:14:17
интересует а вторым параметром и сюда
00:14:20
передаем массив аракс и на самом деле мы
00:14:26
здесь получим вызов функции она
00:14:29
выполнится мы получим какой-то результат
00:14:30
который было бы неплохо вернуть поэтому
00:14:33
здесь я напишу ричард если мы сейчас
00:14:35
посмотрим я обращаюсь к fp
00:14:38
и вызова данную функцию то как видите мы
00:14:41
получаем здесь следующий результат
00:14:43
получаем текст calling fn что в принципе
00:14:47
здорово да потому что мы попали теперь в
00:14:49
функцию play и здесь мы можем выполнять
00:14:52
любую логику которую захотим и получаем
00:14:55
наш старый результат то есть допустим
00:14:57
log
00:14:58
find потому что мы не передали параметр
00:15:00
никакой пусть мне сюда передам тест да
00:15:04
как видите все работает успешно что
00:15:06
классно теперь мы можем в методе плай
00:15:09
делать что угодно с данным результатом
00:15:10
то есть например мы можем его
00:15:12
преобразовывать в какой год нам формат в
00:15:16
этом уроке я здорово непростой например
00:15:18
например приведу все к верхнему регистру
00:15:21
с помощью функции ту apps и теперь если
00:15:25
я вызовом function прокси с каким-то
00:15:29
текстом в лор кейзи как результат ну
00:15:32
во-первых получаем console.log
00:15:33
плюс мы получаем значение уже в верхнем
00:15:37
регистре то есть идея в том что я как угодно
00:15:39
преобразовываю данную функцию и третий
00:15:44
пример который мы разберём с прокси
00:15:46
он относится к и классом и к ключевому
00:15:49
слову new здесь я напишу комментарий классов и для
00:15:55
начала я создам какой-нибудь квас
00:15:57
допустим я назову его person у которого
00:16:00
будет метод конструктор это для примера
00:16:03
я здесь задам просто поля name и поле
00:16:06
эйдж чтобы было проще и все что будет
00:16:09
делать конструктором будет приватным
00:16:11
поле он и им присваивать поля name и
00:16:14
dice лишь равно лишь то есть абсолютно
00:16:17
базовое использовании класса и теперь мы
00:16:21
можем прокси ровать классы как это
00:16:24
сделать допустим здесь я создал
00:16:26
переменную которую назовем пустим песен
00:16:31
прокси
00:16:33
так как мы будем использовать данную
00:16:35
переменную как класс то я называю ее с
00:16:37
большой буквы и как обычно с помощью
00:16:40
ключевого слова ним и класса прокси я
00:16:43
создаю этот прокси
00:16:44
где в качестве таргитая передаю название
00:16:47
класса который я хочу проектировать
00:16:49
вторым параметром я передаю объект где
00:16:52
должен указать список хендлеров важно
00:16:55
понимать что здесь я также могу
00:16:56
использовать любые хэндлеры которые
00:16:58
присутствуют но для того чтобы отследить
00:17:01
инициализацию какого-то нового класса то
00:17:04
есть через ключевое слово new
00:17:05
я могу использовать трек да или ловушку
00:17:10
иными словами которые
00:17:11
это конструкт в контракт первым
00:17:14
параметром я принимаю как обычно
00:17:16
таргет и вторым параметры не принимаю
00:17:19
массив аргументов то есть по аналогии с
00:17:22
методом аплайн и в принципе здесь я могу
00:17:26
делать ровно то же самое что и делал до
00:17:29
этого то есть выполнять любую логику
00:17:31
который мне потребуется я здесь напишу
00:17:34
console.log
00:17:35
допустим конструкт на чтобы убедиться
00:17:40
что в действительности я захожу в этот
00:17:41
метод и дальше мне нужно вернуть
00:17:45
какой-то результат базового
00:17:47
использование ловушки над конструктором
00:17:50
выглядят следующим образом мы возвращаем
00:17:52
новый объект таргета с массивами аркс
00:17:59
сейчас я поясню что данная строчка
00:18:01
значит идея в том что мы перехватываем
00:18:04
метод конструктора и здесь должны
00:18:07
выполнить какую-то логику
00:18:08
то есть мы должны что то вернуть как
00:18:10
результат потому что если мы делаем
00:18:12
новый экземпляр от класса person то мы
00:18:14
получаем новый объект здесь я пишу new
00:18:19
таргет и на самом деле таргет является
00:18:21
классом просим то есть по факту здесь и
00:18:24
пишу new person просто так как я получаю
00:18:26
как аргумент и дальше с помощью
00:18:28
оператора спрайт я передаю все
00:18:30
необходимые параметры которые нужны для
00:18:32
работы данного класса то есть нашем
00:18:34
случае это поле name и эйдж
00:18:36
если бы здесь было больше параметров то
00:18:38
соответственно они также здесь
00:18:39
распределяться и инициализации пройдет
00:18:42
успешно и теперь я могу создать
00:18:45
переменную например и уже от класса
00:18:47
просим прокси в конструктор которого я
00:18:50
передам значение например
00:18:52
максим и мы там по и ждать передаем
00:18:57
пусть печь будет 30 теперь если обновлен
00:19:01
страницу в браузере то во-первых я сразу
00:19:03
же уже получу контракт потому что мы
00:19:06
здесь инициализируем переменную пин да
00:19:09
если образчик queen pen то как видите мы
00:19:12
получаем здесь самый обычный объект
00:19:14
класса person чем это может быть хорошо
00:19:18
тем что на самом деле теперь мы можем
00:19:21
что угодно творить с данным классом и в
00:19:24
действительности мы можем например
00:19:26
инициализацию данного объекта также
00:19:28
обернуть в новый прокси
00:19:30
допустим нее прокси вторым параметра мы
00:19:35
передаем объект хендлеров ну и например
00:19:38
в качестве очень простого примера здесь
00:19:40
я могу реализовать например ловушку с
00:19:42
помощью метода get я буду получать
00:19:44
объект таргет и объект проб эти здесь я
00:19:47
назову его не таргет лучше а допустим
00:19:51
перемен найти
00:19:52
чтобы не было пересечение то есть в
00:19:54
данном случае не будет никакой проблемы
00:19:56
но лучше не повторяться и по сути здесь
00:20:01
я могу также писать любую логику
00:20:03
допустим risen бишон беттинг проб со
00:20:09
значением проб и возвращать те проб
00:20:16
теперь если одну страницу и у нас теперь
00:20:20
есть переменная п которая является
00:20:23
результатом работы прокси персам прокси
00:20:26
то как видите здесь мы уже получаем на
00:20:29
класс прокси да не класс просится если
00:20:32
мы обратимся допустим поле name то мы
00:20:35
получим нужный нам результат и также мы
00:20:38
здесь получим тот console.log
00:20:39
а на самом деле который представляет
00:20:41
любую логику по валидации любую логику
00:20:44
по трансформация которую мы описали в g3
00:20:48
то есть на самом деле это очень удобно и
00:20:50
в принципе это все что я хотел
00:20:53
рассказать вам в этом видео но чтобы
00:20:57
было вам более интересно
00:20:58
не много спойлеров перед следующем видео
00:21:02
я вам покажу очень прикольный пример для
00:21:04
работы с прокси и
00:21:06
рассматривать я его буду именно на
00:21:08
объектах представьте что у нас есть
00:21:11
метод get который делает достаточно
00:21:12
скучную работу он возвращает нам таргет
00:21:15
проб и просто выводит console.log
00:21:17
какое-то значение то есть да это
00:21:20
прикольно но не так уж это сильное
00:21:22
впечатляет а представьте что мы
00:21:25
реализуем с вами числе следующую логику
00:21:26
она будет достаточно странной но как
00:21:29
результат вы поймете о чем идет речь
00:21:31
если я здесь допишу iv я спрошу если не
00:21:36
проб in таргет то есть если такого поля
00:21:41
который мы сейчас хотим получить
00:21:43
нет в самом объекте то тогда я буду
00:21:46
делать что-то необычное
00:21:48
например я обращаюсь к тому проб и
00:21:51
который я сюда передаю и вызовами этот
00:21:54
сплит сплит я буду делать по символу
00:21:58
нижнее подчеркивание мид а сплит у
00:22:02
строки нам возвращает массив поэтому с
00:22:04
помощью метода мэг я могу по нему
00:22:06
приближаться где на каждой итерации я
00:22:08
буду получать объект пожет или просто
00:22:11
пин и дальше с помощью данного объекта я
00:22:16
буду с помощью данной строке пин я буду
00:22:19
обращаться к таргет по ключу и
00:22:22
то есть получать некоторое значение из
00:22:25
исходного объекта и так же с помощью
00:22:27
метода join я все это соединю через
00:22:29
пробел ну а чтобы наш гид рггу валидный
00:22:32
здесь я просто его вернула
00:22:35
возможно вам пока не очень понятен
00:22:37
данный код но давайте я покажу как это
00:22:39
работает то есть мы сейчас обращаемся
00:22:41
именно к объекту lp
00:22:43
допустим не пришел пейдж все работает
00:22:47
корректно допустим не пришел opi nail
00:22:50
все работает также корректно давайте
00:22:55
временно закомментирую консулов чтобы он
00:22:56
нам не мешал
00:22:57
а теперь допустим я попробую обратиться
00:23:01
к open но к тому свойства у которого нет
00:23:06
в объекте персон в данный прокси
00:23:09
то есть можно не и посмотреть у нас
00:23:11
здесь есть всего лишь три поля name edge
00:23:14
и job is теперь я напишу следующие alpin
00:23:19
main нижнее подчеркивание эйдж нижнее
00:23:22
подчеркивание job такого ключа у нас
00:23:25
точно нет но если я нажму enter the как
00:23:28
видите я получу достаточно необычный
00:23:30
результат
00:23:32
я получу здесь поля name эйдж и
00:23:35
значение faustig допустим я хочу
00:23:38
изменить порядок
00:23:39
просто пишу эйдж не получая нужное
00:23:43
значение хочу изменить еще раз порядок
00:23:46
пишу job эйдж хочу сделать совсем что-то странно
00:23:50
я пишу таким образом и как видите мы
00:23:56
получаем здесь достаточно не обычную
00:23:57
логику
00:23:58
то есть мы как будто бы обращаемся к
00:24:00
ключам объекта но на самом деле мы
00:24:02
выполняем свою совершенно кастомную
00:24:03
логику и оно позволяет нам делать
00:24:06
достаточно необычные доселе и гибкие
00:24:09
вещи поэтому я надеюсь что я смог вас
00:24:12
заинтересовать в том что в
00:24:14
действительности прокси имеют огромное
00:24:15
обширное практическое применение которое
00:24:18
может существенно упростить и сделать
00:24:21
гибче ваше приложение и со теории я
00:24:24
думаю мы разобрались да здесь нет на
00:24:26
самом деле ничего сложного поэтому еще
00:24:29
раз если вам был полезен данный ролик и
00:24:31
он вам понравился то обязательно
00:24:33
подписываетесь добавляйте не друзья
00:24:35
ставьте лайки коментарии и мы увидимся с
00:24:37
вами в другом ролике где разберем
00:24:39
некоторые практические аспекты данного
00:24:40
класса

Описание:

Получить профессию Frontend разработчика - https://result.school/products/junior-js Подробнее узнать об обучении в Result School - https://t.me/result_jfd Бесплатный курс HTML & CSS - https://result.school/products/html-css Сделать 5 проектов на JavaScript - https://result.school/products/marathon-js Я в соц сетях: Telegram: https://t.me/js_by_vladilen VK: https://vk.com/vladilen.minin Instagram: https://instagram.com/vladilen.minin Мои паблики по JavaScript: Telegram: https://t.me/result_school_it VK: https://vk.com/result.school Instagram: https://www.instagram.com/result.scho... JavaScript cообщества: Discord: https://discord.com/invite/jscommunity Telegram: https://t.me/js_by_vladilen_chat Roadmap по каналу: https://vladilen.notion.site/Roadmap-YouTube-0b917095c1ec424e9574c2ede36efab9 Урок 9. JavaScript. Proxy. Объекты, функции, классы. Часть 1 В этой части я расскажу про теорию использования Proxy в javascript Вы узнаете как прокси работает с объектами, классами и функциями Ссылка на документацию: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy Сложный JavaScript простым языком: https://www.youtube.com/watch?v=aQkgUUmUJy4&list=PLqKQF2ojwm3l4oPjsB9chrJmlhZ-zOzWT

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Урок 9. JavaScript. Proxy. Объекты, функции, классы. Часть 1"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Урок 9. JavaScript. Proxy. Объекты, функции, классы. Часть 1" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Урок 9. JavaScript. Proxy. Объекты, функции, классы. Часть 1"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Урок 9. JavaScript. Proxy. Объекты, функции, классы. Часть 1" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Урок 9. JavaScript. Proxy. Объекты, функции, классы. Часть 1"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Урок 9. JavaScript. Proxy. Объекты, функции, классы. Часть 1"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

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