#11 ООП, Прототип, Конструктор, Класс, Наследование, Супер JavaScript, Основы

Sdílet
Vložit
  • čas přidán 8. 09. 2024
  • В этом уроке мы рассмотрим Объектно-Ориентированное Программирование на языке JavaScript. Узнаем что такое Прототип, Конструктор, Класс и Наследование. Научимся использовать эти механизмы в своем коде.
    ⚡️ Эксклюзив на Boosty - boosty.to/itdo...
    💡 Telegram канал и чат - t.me/itdoctor_...
    🎥 Курсы на Stepik - stepik.org/use...
    Дзен - dzen.ru/itdoctor
    Rutube - rutube.ru/chan...
    ВКонтакте - itdocto...
    #itdoctor #js #javascript

Komentáře • 56

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

    Супер курс по языку JavaScript: stepik.org/z/113653

  • @user-kb4kd2vd7v
    @user-kb4kd2vd7v Před 3 lety +9

    Отличный урок! Спасибо! Так держать!👍👍👍👍👍👍

  • @-dubok-
    @-dubok- Před rokem +2

    Спасибо за урок. Заметил, что сейчас становится более популярным метод создания объектов через обычные функции с замыканиями переменных, которые обычно называют через слово create, например, createUser(). Мне он тоже больше нравится, как-то более наглядно видно, что куда идёт, нет странного синтаксиса классов. С помощью функционального метода и наследование можно реализовать, и всё, что угодно ещё, но гибкости при этом больше. Лично я в своих проектах только функциональный метод использую. Например, создание User'а выглядело бы так:
    const createUser = (name, age, admin=false) => {
    function myInfo() {
    console.log('Меня зовут ' + this.name + ', мой возраст: ' + this.age)
    if (this.admin) console.log('Я админ')
    }
    return { name, age, admin, myInfo }
    }
    Если нужно унаследовать, то просто пишешь так:
    const createModerator = (name, age, admin=false, moder=true) => {
    const user = createUser(name, age, admin)
    function addPost() {
    console.log('Новый пост')
    }
    function myInfo() {
    user.myInfo()
    if (this.moder) console.log('Я модератор')
    }
    return { ...user, moder, myInfo, addPost }
    }

    • @ITDoctor
      @ITDoctor  Před rokem

      Спасибо что делитесь

  • @user-sp9gh1sj7c
    @user-sp9gh1sj7c Před 11 měsíci +3

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

    • @ITDoctor
      @ITDoctor  Před 11 měsíci

      спасибо что оценили

  • @Vse-po-Faktu
    @Vse-po-Faktu Před 8 měsíci +1

    Каждый урок - находка для того, кто изучает JS!!! в понимании наследования, мне очень помогло знание SCSS. Там очень схоже + похожий синтаксис. Спасибо огромное!! Было бы вообще круто, если бы эти все примеры показывали с выводом на страницу. Но и без этого очень полезный материал делаете!

    • @ITDoctor
      @ITDoctor  Před 8 měsíci +1

      далее в этом плейлисте мы будем изучать dom там будет работа со страницей

  • @tinatriboi6799
    @tinatriboi6799 Před 3 lety +5

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

  • @user-up9ct3ef3s
    @user-up9ct3ef3s Před 6 dny +1

    начало,наследование , инфа про прото

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

    Отличное видео! Стало все понятно и пример тоже хороший!

  • @alexandershnaidman8188
    @alexandershnaidman8188 Před 10 měsíci +1

    Супер урок супер курса - всё просто , чётко и понятно! Большое спасибо!

    • @ITDoctor
      @ITDoctor  Před 10 měsíci

      Спасибо, рад что вам нравится

  • @user-up9ct3ef3s
    @user-up9ct3ef3s Před 6 dny +1

    16 минута класс

  • @user-xz4qi9kw9k
    @user-xz4qi9kw9k Před 3 lety +6

    Спасибо за ролик! Тяжело заходит ООП! Мало примеров, все какие то однотипные и куцие. Не льзя ли разобрать ещё пример ООП, например генеалогическое дерево (дети, родители, прародители, прапрародители..., фото, краткие истории и т.д.), этот пример был бы нагляден для каждого и может помог бы в освоении ООП.

    • @novichok3417
      @novichok3417 Před 10 měsíci

      Вложенности больше двух не приветствуется . Их тяжело отслеживать и они запутывают код. Достаточно понять одно вложение и самому тренироваться. 2- ой объект наследуется от 1-го , а первый от глобального Object . То есть если вызвать какое то свойство(метод) у 2-го объекта которого нет но по ссылке будет искаться в 1-ом если в1-ом его нет он будет искаться в глоб объекте. И там зависимости от наличия будет результат

  • @stasonsv52
    @stasonsv52 Před 3 lety +3

    Хороший выпуск!

  • @Anatoli-bq1pe
    @Anatoli-bq1pe Před rokem +1

    Огромное спасибо за урок! Мне лично ООП очень нравится как способ реализовывать код

    • @ITDoctor
      @ITDoctor  Před rokem

      Всегда пожалуйста

  • @user-up9ct3ef3s
    @user-up9ct3ef3s Před 6 dny +1

    53:50 шаблон для номеров)

  • @Albert_Hall
    @Albert_Hall Před rokem +1

    Посмотрел От и До. Благодарю 🌎

  • @user-up9ct3ef3s
    @user-up9ct3ef3s Před 6 dny +1

    44:31 привет обратные кавычки из пчп

  • @Comrade_Paradoxich
    @Comrade_Paradoxich Před 11 měsíci +1

    Тема и вправду немного сложнавата, но с твоими объяснениями при должном желанию разобраться более чем возможно. Правда, иногда не хватает конкретики относительно написанных тобой методов. Ну, и само собой пламенное спасибо за прекрасную подачу и понятные изъяснения!

    • @ITDoctor
      @ITDoctor  Před 11 měsíci

      Спасибо за оценку. Тема действительно не простая. постепенно с опытом и временем придется. если конечно уделять на это время и получать новый опыт регулярно!

  • @user-wo8wd9kr1b
    @user-wo8wd9kr1b Před 3 lety +4

    Спасибо большое. Для меня ООП - единственное что не заходит

  • @Seven-ik9lp
    @Seven-ik9lp Před rokem +1

    супер, спасибо за видео!!!

  • @user-up9ct3ef3s
    @user-up9ct3ef3s Před 6 dny +1

    36:46 шаблон

  • @AkeyChannelSelf
    @AkeyChannelSelf Před měsícem

    Плейлист очень хороший, но есть 1 минус, по крайней мере для меня: слишком большое количество информации в 1 ролике. Этот ролик точно подошёл бы для людей, которые уже знают js и лишь повторяют его, а для людей, которые только изучет, мне кажется он покажется излишне сложным

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

    Дэрс ичюн чох саол. Машалла!

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

    Отличный урок!

  • @clannajebyan
    @clannajebyan Před rokem +1

    Так-то ничего сложного, просто нужно разобраться как и чего, а для этого нужно время. Есть 3 принципа ООП, сейчас еще выделяют 4-й, но многие скептически к этому относятся, а так да - наследование - это основа, иначе мы улетаем в процедурное программирование)))

    • @ITDoctor
      @ITDoctor  Před rokem +1

      так в целом все доступно в этом мире

  • @maks-rst
    @maks-rst Před 11 měsíci

    Да вроде ОПП не так сложен, если честно, все предельно понятно: есть объект, у него может быть статичная запись, от него можно наследоваться и у объекта есть свои стандартные наследуемые параметры от самого движка, единственное, что стало действительно запутанным, это пример в конце, но в принципе, если полностью погрузиться в то, что нужно сделать с помощью используемых параметров, то можно реализовать. Глаза боятся, руки делают, так сказать)
    Мне труднее дается функция, почему-то, непонятно когда используется функция, для чего она нужна, когда лучше использовать стрелочную функцию (с моими скромными знаниями, я помню, что у функции есть область видимости, но к стрелочной функции это не относится, также, если я не ошибаюсь, то стрелочная функция по-другому работает с кешем), вот у скольких ютуберов не смотрю, не могу никак въехать в каких именно случаях она пригодится, за исключением каких-то мат. задач, также был непонятен return что он именно возвращает, почему без него в некоторых моментах ничего работать и не будет, но с твоими примерами я на каком-то интуитивном уровне начинаю понимать, когда использовать retrurn, а когда можно обойтись без него) осталось только въехать в само предназначение функции.
    Кстати, скажи, пожалуйста, а дальше по курсу будет урок, как JavaScript работает с памятью? Может какие-нибудь лайфхаки, рекомендации как оптимизировать записи, какая память забивается, как лучше не работать с памятью, дабы её всю не забить и прочее. Если такого видеоролика нет, то будет ли он?

    • @ITDoctor
      @ITDoctor  Před 11 měsíci +1

      такого видеоролика нет. и не думаю что будет. на javascript это называется сборка мусора, она происходит автоматически, можно почитать тут - этого будет достаточно для понимания learn.javascript.ru/garbage-collection а другие моменты больше наверно относятся к архитектуре программы и правильному её построению. тут уже лучше читать книги например Чистая архитектура. Искусство разработки программного обеспечения Роберт Мартин

    • @novichok3417
      @novichok3417 Před 10 měsíci

      Return не обходим когда необходимо сохранить результат работы функции function foo(a, b) {
      return a+ b
      }
      let result = foo(1, 2);
      В переменной result будет 3. А если просто надо вывести сообщение типа привет мир можно без return

  • @user-sp4ul5ym1y
    @user-sp4ul5ym1y Před 10 měsíci

    Спасибо! Но у меня вопрос. Корректно ли писать логику в конструкторе? В C# например Microsoft не рекомендует так делать, а только присваивать значения, а логику писать уже в методах.

    • @ITDoctor
      @ITDoctor  Před 10 měsíci

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

  • @xumagaming976
    @xumagaming976 Před 10 měsíci

    Сейчас уже в Chrome консоле не proto, а [[Prototype]] и __proto__: admin уже не работает. Что делать?

  • @Kalcifer
    @Kalcifer Před rokem

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

    • @ITDoctor
      @ITDoctor  Před rokem +1

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

    • @Kalcifer
      @Kalcifer Před rokem

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

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

    Крутой урок но количество информации которую приходиться систематизировать просто обезкураживает.Чувствую себя как ученик в додзе которому надавали люлей на первой тренировке.

  • @WockeezChannel
    @WockeezChannel Před rokem

    Как по клику на кнопку запускать метод, вот это интересно

    • @ITDoctor
      @ITDoctor  Před rokem +1

      в супер курсе это рассматривается. Да и на ютубе в других моих видео можете поискать не раз показывал. Обработчик события нужно создать addEventListener

    • @WockeezChannel
      @WockeezChannel Před rokem

      @@ITDoctor в addeventlistenerе что-то типа class.func() ???

  • @MsLodir
    @MsLodir Před 3 lety

    777 это такой портвейн был в СССР

  • @siyavush
    @siyavush Před rokem

    Что то с атрибутом room нет метода, как пример можно добавить так
    /**
    * Вывести ФИО и номер комнаты
    * @param {String} ФИО
    * @param {Number} номер комнаты
    * @return {String} строка формата "ФИО живет в номере номер комнаты"
    */
    getRoomNumber(){
    return`${this.name.f} ${this.name.i} ${this.name.o} живет в номере №${this.room}`
    }

  • @YarkiiYa
    @YarkiiYa Před 3 lety +3

    Спасибо, очень доступно все объяснил!