Внутренний мир javascript: объекты и прототипы

Поділитися
Вставка
  • Опубліковано 8 сер 2017
  • Типы данных в js. Всё ли является объектами. Объекты: свойства и методы. Классы. Прототипы объектов.
    Скоро новый поток курса - js.dmitrylavrik.ru/

КОМЕНТАРІ • 130

  • @user-sc7fl7jl5k
    @user-sc7fl7jl5k 5 років тому +49

    Чувак, ты классный, хочется тебе просто дать денег. Классные видео выкладываешь!

    • @feedkg
      @feedkg 4 роки тому +4

      ну дай

  • @dimaskarpus1425
    @dimaskarpus1425 6 років тому +6

    Большое спасибо))
    Вы один из немногих людей, которые дают такое понимание js бесплатно))

  • @TortugaStudio
    @TortugaStudio 3 роки тому +1

    Это просто прелестно, прелестно! Как нашел вебинары Дмитрия, то уже и про нетфликс позабыл.

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

    Прекрасный преподаватель. Спасибо за Ваш труд.

  • @serhii_khomenko92
    @serhii_khomenko92 6 років тому

    Дмитрий Лаврик
    У Вас талант до викладання. Я ще не бачив і не чув жодного викладача який би так доступно і якісно все пояснював. Дякую за ваші уроки.

    • @nabiullinruslan
      @nabiullinruslan 5 років тому

      я бы ничего не понял, если бы Лаврик на мове семинары проводил

  • @user-uz7ok7vl2j
    @user-uz7ok7vl2j 5 років тому

    Замечательный вебинар!
    Классный подход к изложению информации!
    Увлекательно и интересно!

  • @andriyk4313
    @andriyk4313 5 років тому

    Спасибо. Я не мог ни как прояснить для себя о прототипе. Вы все очень доступно и постепенно объяснили. Лучшего урока не видел

  • @user-tr8hr4xm1l
    @user-tr8hr4xm1l 6 років тому +2

    Дмитрий, спасибо! Очень полезный материал кстати. Начал углубляться в ООП и стали понятны ранее непонятные вещи

  • @lia-xx9lh
    @lia-xx9lh 5 років тому +1

    Очень крутая подача материала! Я наконец-то поняла прототипы. Спасибо большое 👍🏻

  • @user-uv2rv2du5s
    @user-uv2rv2du5s 5 років тому +3

    Уроки очень классные, многое становится понятным)) Дмитрий крут))

  • @arusikapinyan6326
    @arusikapinyan6326 5 років тому

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

  • @romanalekseev5149
    @romanalekseev5149 5 років тому +1

    Очень, понятно подаёт информацию. Интересно и легко смотреть. Буду смотреть остальные видосы думаю узнаю много нового. Спасибо

  • @user-nf6xv1dk5t
    @user-nf6xv1dk5t 6 років тому

    В очередной раз диву даюсь, Дима красавчик, умеешь толково объяснить

  • @pirxon
    @pirxon 7 років тому +43

    классный канал, давно смотрю, странно что подписчиков мало.

    • @ruslankomlykov9207
      @ruslankomlykov9207 7 років тому +17

      Это узкоспециализированная тема, у нее не может быть много подписчиков, это же не "яйца в микроволновке взрывать" ;)

    • @SilentCamp
      @SilentCamp 6 років тому +1

      не в этом дело. Просто канал это лишь записи вебинаров.

    • @user-fz7fe8cn7i
      @user-fz7fe8cn7i 6 років тому

      А что должно быть?

    • @KostiaBazrov
      @KostiaBazrov 6 років тому

      Владислав Дидковский, короткие видоски

    • @user-cl3ej8mt9i
      @user-cl3ej8mt9i 6 років тому +15

      должно быть короткое и не понятное говно , как у хауди хо , гоши и прочих и желательно заголовок учим программирование за 15 минут под все платформы и среды !!

  • @user-xn3lu5yj9c
    @user-xn3lu5yj9c 6 років тому

    Супер, вот об классах не слышал, только закончил трёх месячный курс по front-end development, понятие пришло, большое спасибо за Ваш вебинар!

  • @RinatYouldashbaev
    @RinatYouldashbaev 6 років тому

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

  • @e.p_yan
    @e.p_yan 6 років тому

    Дмитрий все супер! большое спасибо за свой труд!!

  • @myshlyapa
    @myshlyapa 7 років тому +3

    Шикарная подача. Жаль редко выходят видео.

  • @arhisonlight70
    @arhisonlight70 6 років тому +2

    Спасибо большое! Вы помогли мне разобраться с prototype

  • @DimitarRad
    @DimitarRad 3 роки тому

    Дима, ОГРОМНОЕ тебе спасибо за твои видео. И привет с 2021)

  • @user-cb2ci3ik5h
    @user-cb2ci3ik5h 6 років тому +1

    Огромное спасибо,очень хорошо объясняете.

  • @ihorkurylenko4293
    @ihorkurylenko4293 6 років тому

    Дмитрий, спасибо Вам большое за ваше время и уроки. Я недавно начал курсы по React и все никак не мог понять что за class, extends, constructor и super используются. Вы всё очень доходчиво объяснили, очень благодарен за Ваш труд! Продолжаю изучать React дальше :)

  • @Nazar0005
    @Nazar0005 7 років тому +1

    Спасибо за новое видео про js! лайк не глядя

  • @rysik2x
    @rysik2x 6 років тому +7

    Лаврик спасибо, очень доходчиво объясняешь, пили ещё, особенно про реакт и JS Native

  • @user-hb3ql3gl5j
    @user-hb3ql3gl5j 4 роки тому

    Дмитрий, браво.

  • @turalinov
    @turalinov 5 років тому

    Очень полезный вебинар. Как раз начал изучать язык JavaScript. Для себя узнал что есть прототипы. Продолжайте снимать такие полезные и годные видео. А мы вас поддержим. С меня лайк и подписка.

  • @user-cd1sr5sx2r
    @user-cd1sr5sx2r 3 роки тому

    Спасибо за семинар и хорошие примеры.

  • @EmirMamashov
    @EmirMamashov 5 років тому

    Отлично! Я много чего понял, дополнил свои теоретические знание, спасибо!

  • @user-bk6rv3ed4i
    @user-bk6rv3ed4i 6 років тому

    Спасибо большое! Классный вебинар!

  • @alexpipin3693
    @alexpipin3693 4 роки тому +1

    приарнул с типа который написал, когда увидел es6 "пора забыть про прототипы" )))
    вот такие кодеры и составляют 80% всех разработчиков
    так же больше половины посыпятся на вопросе, чем отличается es6 от ecmascript 2015
    уроки хорошие спасиб!

  • @stasalexandronets9394
    @stasalexandronets9394 5 років тому

    Очень крутой урок - появилось понимание прототипов, классов, хотя уже прошел оффлайн курс по JS

  • @user-nu6ld3tm5e
    @user-nu6ld3tm5e 3 роки тому

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

  • @user-wq4yh7bl7g
    @user-wq4yh7bl7g 4 роки тому

    Классный видос, все четко объяснил, побольше б таких видосов, лично я хотел бы услышать про функторы и манагеры в js

  • @user-qf1fr6si3p
    @user-qf1fr6si3p 5 років тому

    Очень понятно и интересно. Спасибо большое.

  • @user-jk2dx7im1w
    @user-jk2dx7im1w 5 років тому

    Отличное видео. Большое спасибо!

  • @user-wp8ej2sh6y
    @user-wp8ej2sh6y 4 роки тому

    Большое спасибо!!! Я наконец-то поняла прототипы!!!

  • @user-gv1cq4jn1g
    @user-gv1cq4jn1g 3 роки тому

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

  • @AngelRez44
    @AngelRez44 4 роки тому

    Отличное видео! Спасибо.

  • @user-bv1no6jw6w
    @user-bv1no6jw6w 4 роки тому

    У тебя талант преподавательский!Лучший лекции не слышал )

  • @olivias4710
    @olivias4710 5 років тому

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

  • @user-qe2ij7wd4m
    @user-qe2ij7wd4m 4 роки тому +2

    При добавлении точки к строке создаётся временная обёртка String. Тут нет парадокса. Все документировано.

  • @PacoOfficial
    @PacoOfficial 7 років тому +4

    о годнота подъехала))

  • @ruslankomlykov9207
    @ruslankomlykov9207 7 років тому

    Крутые уроки! спасибо!!

  • @feedkg
    @feedkg 4 роки тому +1

    Спасибо Дмитрий , особенно офигел когда использовал бездумно jquery , благодаря вашему уроку все соединилось , и бум щелчок все понял

    • @iDobroslavin
      @iDobroslavin 4 роки тому

      Я и несколько jQuery подключал разных версий :)

  • @BRafaelT
    @BRafaelT 6 років тому

    Спасибо, было клево!!!

  • @vladlen6759
    @vladlen6759 5 років тому

    ГоднотищА!Годный урок!!!

  • @user-sh7bb6hk6f
    @user-sh7bb6hk6f 7 років тому

    Вебинар супер!!!

  • @kellmen5975
    @kellmen5975 6 років тому +11

    Душевный канал) и объясняет доходчиво! дойдёт даже до среднестатистического дебила) продолжай и успехов! обязательно буду тебя смотреть и скорее всего запишусь на курс

    • @agasigabrielyan1764
      @agasigabrielyan1764 5 років тому +1

      до тебя дошло? :-)

    • @TortugaStudio
      @TortugaStudio 3 роки тому

      @@agasigabrielyan1764 мамкин остряк детектед.

  • @deepindub
    @deepindub 4 роки тому

    Огромное спасибо!!

  • @maxproksin8485
    @maxproksin8485 7 років тому

    Годно, даже очень

  • @user-gs2jp9jd3s
    @user-gs2jp9jd3s 4 роки тому

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

    • @user-rl8fy6xe1t
      @user-rl8fy6xe1t 10 місяців тому

      Ява это другой язык)

  • @vladislavviznyakpolicy1468
    @vladislavviznyakpolicy1468 5 років тому

    Вэбминары супер) жду пополнения

  • @freezinful
    @freezinful 6 років тому +1

    объяснил как батя!) я все поняла

  • @user-wx2fq8fm3g
    @user-wx2fq8fm3g 7 років тому +3

    Дмитрий сделай вебинар по функциональному программированию ;)

  • @user-bh1ry4sh9v
    @user-bh1ry4sh9v 3 роки тому

    Спасибо

  • @jsb7239
    @jsb7239 3 роки тому

    Любо!👍🏻

  • @andryi6175
    @andryi6175 6 років тому

    Ты крут!

  • @user-ym7gg5ki6l
    @user-ym7gg5ki6l 5 років тому

    спасибо!!!

  • @ravabat5841
    @ravabat5841 5 років тому

    Awesome!!!

  • @O-L-1986
    @O-L-1986 5 років тому

    Норм відос, спасибо!

  • @armenian_global_animation_5872
    @armenian_global_animation_5872 6 років тому +1

    Большое спасибо автор

  • @molkotok
    @molkotok 6 років тому

    Перехожу с PHP на Node.js и приходится вникать в тонкости js. Очень толково, спасибо!!!!

  • @atherine6991
    @atherine6991 5 років тому

    Клаааас) Пазл собран

  • @user-vg6bx3uf8e
    @user-vg6bx3uf8e 5 років тому

    В тему, зачем выносить методы из конструктора. Потому что функции - это объекты и на них можно ссылаться, соответственно можно вынести ее из конструктора, а свойства - это типы примитивы, они не ссылочные и поэтому сохранить связь с экземпляром, вынося свойство в прототип нельзя .Кстати, Дмитрий, большое спасибо за уроки.

  • @rodigy
    @rodigy 6 років тому +6

    Вопрос о кол-ве классов не верно объяснили, на самом деле в js нету классов NodePrototype и прочих, это все только в document/window который есть только в браузере, чистый js лишен всего этого

  • @singlebw4065
    @singlebw4065 4 роки тому

    new в c++ это выделение динамической памяти(куча), так во всяких php js это тоже самое означает? типо требуется это указывать чтоб компьютер подыскивал место в куче и создавал там объект? вообще как то с адресами работать можно? Есть ли возможность запроса ввода данных от пользователя как типо cin>>

  • @xmelsky
    @xmelsky 6 років тому

    Привет, Дмитрий! А вебинары еще проводите?

  • @user-gc7xr2jh7j
    @user-gc7xr2jh7j 6 років тому

    Будут ли вебинары по node.js?

  • @user-ep3dr2vi4v
    @user-ep3dr2vi4v 5 років тому

    Бог

  • @KlinovAS
    @KlinovAS 5 років тому

    Не помню что именно вы сказали на счет разницы между объекта и массива, кажется вы показывали что в скрипте абсолютно все сводится к объекту. Недавно наткнулся практикой на костыль. Как оказывается массив и объект это разные вещи. С объектом я не могу сделать obj.join(",") а вот с массивом без проблем. Это очень востребованная функция и без нее никак. Очень удобно было бы держать значениея именно в объекте, поскольку если повторить один и тот же ключ, то значения просто перезапишутся, а в массиве для этого нужно велосипедить условие. Да и добавить в массив можно только через push. Скрипты, PHP, NodeJS, Питон люблю только из-за легкости использования массивов и объектов. Раньше на других языках это было мучением. Ничем больше революционно языки не лучше друг от друга. Просто Java Script работает мгновенно с объектами, а PHP уже тратит время чтобы внутрь войти и посмотреть что там. Если взять C или VB и работать с сложными проектами с использованием массивов - можно загнуться на клаве.

  • @user-ng7dd7fm6f
    @user-ng7dd7fm6f 5 років тому

    Дима, здравствуй) Узнал только-что, что в JS есть тип function вот пример: alert( typeof alert ); = function, но это тип в виде строки...FTW ("Оператор typeof надежно работает с примитивными типами, кроме null, а также с функциями. Он возвращает для них тип в виде строки").Вопрос, как дальше жить?))

  • @vladislavtishchenko4992
    @vladislavtishchenko4992 4 роки тому

    1:17:07 копипастит только в том случаи если пишите на новом стандарте, иначе оставляет ключ : значение в прототипе, в этом примере конкретно в классе Animal

  • @XY-rd8ve
    @XY-rd8ve 5 років тому

    Привет Дмитрий. Пожалуйста подскажи как лучше начать учить javascript? Если это мой первый язык программирования и какие бы ты книги посоветовал прочитать? Заранее большое спасибо за ответ!

    • @VadimSuharnikov
      @VadimSuharnikov 5 років тому

      Можешь поглядеть вот это. Вполне себе годный учебник с примерами
      learn.javascript.ru

  • @materna432
    @materna432 6 років тому

    Получается так что в es6 никаких прототипов для программиста нет... только на уровни внутренней работы js...
    и все это делается чисто классами.
    И все-же мы можем впихнуть данные в прототип объекта если используем __proto__ - но это вроде как не очень хороший подход...
    Все так или я чего не понял?)

  • @arturkrotov9891
    @arturkrotov9891 6 років тому

    Спасибо, очень интересная лекция. У меня вопрос : как в прототипе переопределить метод родителя ? Например Dog и Cow прототипы Animal наследуют метод eat . как поменять метод eat , чтоб dog eat был Meat а у Cow -- Grass?

    • @firebird6034
      @firebird6034 6 років тому

      например в классе Dog просто напиши eat() { return "Meat" };

    • @arturkrotov9891
      @arturkrotov9891 6 років тому

      Спасибо!!!

  • @yrka183
    @yrka183 6 років тому

    тоесть прототип это аналог замыканий в функциях?

  • @beknazaromuraliev5680
    @beknazaromuraliev5680 5 років тому

    чем отличается класс от функции в js?

  • @vladshcherbachenia9803
    @vladshcherbachenia9803 6 років тому

    +

  • @RS-ox1bl
    @RS-ox1bl 6 років тому

    всё понятно! когда рассказывают и показывают. я даже самостоятельно читая w3schools понимаю о чем идет речь... но только никто из преподов и обучающих сайтов не отвечает на один глупый вопрос: для чего конкретно это нужно?? допустим прототип...где он используется? в каком случае?? например: если я буду делать "онлайн-будильник" нужно ли мне помнить про этот прототип или о чем я должен помнить???
    например в HTML: параграф для текста, для картинки - всё понятно!
    а в этом случае "prototype" допустим..не понятно зачем он нужен??
    или же это всё просто для того чтоб знать что и как...но если вдруг что то надо сделать, то просто гуглишь,скачиваешь и переделываешь..так??

    • @chiboreache
      @chiboreache 6 років тому

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

  • @numu4913
    @numu4913 4 роки тому

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

  • @user-cl1gh4ho5b
    @user-cl1gh4ho5b 6 років тому +3

    Как хорошо попрактиковаться на JS?

    • @SilentCamp
      @SilentCamp 6 років тому +4

      Создавать велосипеды. Кнопку вверх, Сладер, Лайтбокс и прочее. Узнавая новые темы, можно более грамотно редактировать и упрощать старый код. А потом еще удобно будет учить jq, просто переделывая эти примеры.

    • @talas12341
      @talas12341 6 років тому

      брать безплатные подработки на фрилансе.

    • @RinatYouldashbaev
      @RinatYouldashbaev 6 років тому

      Ресурс Codewars

  • @mylearn734
    @mylearn734 6 років тому +4

    Оооооо!!!! Отличное объяснение классов и прототипов! Спасибо!)
    p.s.: бесят дебильчики в чате, с дебильными вопросами..:(((( это "эффект вебинара" на них видимо так влияет..;(

  • @user-ho7go7sk1o
    @user-ho7go7sk1o 6 років тому

    Получается что конструктор и класс это одно и то же?

  • @vazgenaleksanyan2929
    @vazgenaleksanyan2929 5 років тому

    Кто нибудь подскажет как все это знание закрепить? Как то где то практиковаться надо. Что такое колбеки или замыкание и остальное это знаю. Но нужно все это дело как то практиковать.

  • @jonturnik
    @jonturnik 5 років тому

    Лавровый лист в очередной раз доказал свой высокий интеллект (шутка, конечно же)

  • @singlebw4065
    @singlebw4065 4 роки тому

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

  • @davidkroods811
    @davidkroods811 4 роки тому

    В C# множественное наследование это спорный вопрос, так как класс изначально наследуется от интерфейса а потом уже реализует его, так что можно сказать что в C# есть множественное наследование от интерфейсов

  • @guardofazeroth4586
    @guardofazeroth4586 6 років тому

    не плохо бы к видео добавлять таймкоды

  • @iDobroslavin
    @iDobroslavin 4 роки тому

    Почему используется var, а не let? По-старинке? :)

  • @vladlanov
    @vladlanov 5 років тому

    Помогите пожалуйста, не могу въехать никак, соусем я чайник в абстракциях((( Вот, например, ajax запрос:
    $.ajax ({
    method: "POST",
    url: url,
    dataType: "JSON",
    data: dataObject,
    success: function (response) {
    console.log(response);
    }
    });
    И вот вопросы в чем:
    1) Весь этот запрос - это получается объект?
    2) url, method, dataType и т.д. - это свойства?
    3) success - это свойство или метод?
    4) если success - ни то ни другое, считается ли это вложенным объектом?
    5) если success - вложенный объект, то функция в нем - это метод?
    или я вообще все не так понял?)))))

    • @tothemoon9648
      @tothemoon9648 5 років тому

      Cначала бы стоило разобраться как это в js работает, а суть реализации в библиотеках( сейчас - jquery), не имеет особого значения). Касательно вопроса - да, это объект со свойствами и методами, который затем передается в jquery функцию и обрабатывается как обычный xhr)

  • @RealnoTop
    @RealnoTop 5 років тому

    А КАК ЖЕ ДЕЛАЮТ $(a1).a2.a3.a4.a5.a6.МНОЖЕСТВО_ВЛОЖЕНИЙ????
    Наглядный пример JQuery, в котором можно $(obj).hide(500).delay(1000).show(500)
    Show, delay, Hide - это отдельные объекты. Как они попадают в цепочку ??? Как использовать правильно прототип?

    • @AndKozinsky
      @AndKozinsky 5 років тому +1

      Просто каждая функция возвращает объект. А у этого объекта вызывается следующая функция по цепочке.

  • @sergeyvolkov9061
    @sergeyvolkov9061 5 років тому

    если все не объект, то почему у примитив есть унаследованные от класса Object методы ?

    • @user-108andalu
      @user-108andalu 4 роки тому

      При обращении к переменной, в которой строка, через точку, создается временная обертка String, которая после этого уничтожается. Поэтому это никакой не объект

  • @vladshcherbachenia9803
    @vladshcherbachenia9803 6 років тому +11

    REACT +++++++ПЛИЗ !!!!!

  • @RuchejAlex
    @RuchejAlex 5 років тому

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

  • @skeelo3157
    @skeelo3157 4 роки тому

    Между классом и прототипом не понял разницу в использовании

  • @brodlovherrsov7097
    @brodlovherrsov7097 5 років тому

    Java + JavaScript + SQL = 500К / month

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

    а что это за Лаврик? Киржаческий что ли?

  • @user-pf5pb2uv8x
    @user-pf5pb2uv8x 5 років тому

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

  • @vladshcherbachenia9803
    @vladshcherbachenia9803 6 років тому

    Кто не понял !)
    /*
    var cat = {
    length:0.5,
    age:10,
    eat:function()
    {
    }
    };
    */
    //Пример 1
    /*
    class Cat
    {
    constructor(length , age)
    {
    this.length = length;
    this.age = age;
    }
    eat()
    {
    }
    }
    */
    //Пример 1 === 2
    //Пример 2
    function Cat(length , age)
    {
    this.length = length;
    this.age = age;
    this.eat = function()
    {
    }
    }
    var cat1 = new Cat(0.5 , 5);
    var cat2 = new Cat(1 , 5);
    console.log(cat1)
    console.log(cat2)

  • @talas12341
    @talas12341 6 років тому

    жаль тема сисек не расскрыта, но я понял что такое прототипы