ES6 #8 Классы (Class)

  Рет қаралды 16,438

webDev

webDev

Күн бұрын

#YauhenK #webDev #ECMAScript #ES6
Всех приветствую в курсе «ES6».
В данном видео-курсе мы с вами рассмотрим все ключевые нововведения в стандарте ECMAScript 2015. Разберём практические примеры, а так же проведём аналогию стандартов ES6 и ES5. В своё время это было самое крупное и революционное обновление стандарта, которое добавило кучу новых возможностей начиная новыми способами объявления переменных и новым типом функций, заканчивая новым типом данных symbol, классами, итераторами и генераторами. Все эти фичи мы подробно изучим.
✒ Репозиторий курса:
✔ GitHub: github.com/Yau...
✒ Используемые ресурсы и инструменты:
✔ Atom (Редактор кода): atom.io/
✔ Node.js: nodejs.org/en/
✔ Browserify/Watchify: github.com/bro...
✔ NPM http-server: www.npmjs.com/...
✒ Полезные ссылки:
✔ Exploring ES6: exploringjs.com...
✔ Babel: babeljs.io/doc...
✒ Полезные курсы на канале:
✔ JavaScript: • JavaScript
✒ Полный список готовых и планируемых курсов:
✔ Trello: trello.com/b/R...
✒ Автор курса:
✔ KZbin: / yauhenkavalchuk
✔ Instagram: / yauhenkavalchuk
✔ Twitter: / yauhenkavalchuk
✔ VK: YauhenK...
✔ LinkedIn: / yauhenkavalchuk
✔ GitHub: github.com/Yau...
✔ VK (Группа): webdevcom
✒ Поддержать развитие канала: github.com/Yau...

Пікірлер: 46
@MrDobro1214
@MrDobro1214 2 жыл бұрын
ты на столько крут, что нам в Яндекс практикуме скидывают твои видосы перед ДЗ по теме классов и ООП) Обнимаю.
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Спасибо
@Lokstar_Ugar
@Lokstar_Ugar 10 ай бұрын
лол, вот бы объясняли так что бы и видос не понадобился) В Хекслете нашел видос в обсуждениях ;D
@user_with_params1286
@user_with_params1286 5 жыл бұрын
Спасибо вам большое! Я новичок, мало пока чего понимаю, но ваш канал - лучшее, что я для себя открыл)
@РоманГирич-з5ш
@РоманГирич-з5ш 5 жыл бұрын
по поводу того что название геттера и сеттера не должны совпадать с названием свойства в конструкторе, это было новое для меня, и понял наконец почему в таких случаях пишут (защищенное) свойство начиная с подчеркивания . Благодарю!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Пожалуйста)
@ilgul9177
@ilgul9177 5 жыл бұрын
Очень доходчиво разъяснено.
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Спасибо за отзыв
@АннаАндреевна-ь1и
@АннаАндреевна-ь1и 2 жыл бұрын
Спасибо за крутые объяснения!
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Спасибо за отзыв
@truedivan
@truedivan 3 жыл бұрын
Спасибо за урок, очень познавательно и подробно. Попытки произносить с акцентом немного режут слух. Как по мне лучше без акцента)
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Как уж есть)
@flogger2367
@flogger2367 2 жыл бұрын
А что мешает свойство static task сразу в класс?
@singlebw4065
@singlebw4065 4 жыл бұрын
Что мешает создать свойство в классе с префиксом static? У меня вроде всё работает.
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
👍
@ШураБосс
@ШураБосс 6 жыл бұрын
Отличный урок! Однозначно лайк!
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Спасибо
@SkarletSerhio
@SkarletSerhio 6 жыл бұрын
9:35 Я правильно понимаю, что после переименования свойства isComplited нужно и в методе complited его переименовать, иначе у нас ничего не получится при выполнении данного метода класса?
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Да, всё верно. Просто для примера этот метод не использовался, поэтому я не стал его трогать. Но суть вы уловили правильно!
@andranikhambardzumyan6264
@andranikhambardzumyan6264 3 жыл бұрын
Спасибо
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Пожалуйста
@zatoprosto103
@zatoprosto103 2 жыл бұрын
По идее, статику класса можно объявлять внутри конструктора.. Спасибо за уроки!
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Пожалуйста
@AnatoliiFedorchenko
@AnatoliiFedorchenko 5 жыл бұрын
Хорошее видео. Единственное замечание, насчёт метода isComplited, принято чтобы мотоды начинающиеся с такого суффикса возвращали булево значение.
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Да, согласен.
@pauldudich
@pauldudich 3 жыл бұрын
ну так true и false чем тебе не булевое?
@ДмитрийНормов-ю6ц
@ДмитрийНормов-ю6ц 3 жыл бұрын
Вы забыли указать ключевое слово "static"при создании статичного свойства. Это, пожалуй, ошибка. Не?
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
На момент записи курса - это не было ошибкой. Ключевое слово static появилось совсем недавно. Я даже не уверен, включено ли оно официально в стандарт на данный момент
@singlebw4065
@singlebw4065 4 жыл бұрын
Как кстате скрывать свойства не подскажете?
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Замыкание
@singlebw4065
@singlebw4065 4 жыл бұрын
@@YauhenKavalchuk Ну как работает замыкание вроде бы мне известно, но чёт как его применить для сокрытия свойств чёт не понял. скажем есть у меня класс для рисования анимации кругов. Есть некоторые вычисления и записаны в свойства, как бы смысла их особо нет выводить. Просто появился интерес можно ли их скрыть и при этом чтобы метод экземпляра имел доступ к этим свойствам, но через console.dir не просматривались. class Circle { constructor(radius) { this.radius = radius; this.randWidth = Math.random() * canvas.width; this.randHeight = Math.random() * canvas.height; this.correctiondWidth = (this.randWidth < this.radius * 2) ? -this.radius : this.radius; this.correctionHeight = (this.randHeight < this.radius * 2) ? -this.radius : this.radius; this.x = this.randWidth - this.correctiondWidth; this.y = this.randHeight - this.correctionHeight; this.directionX = Math.random() * 1.5 this.directionY = Math.random() * 1.2 //вот 2 последних к примеру } animation(){ ... } }
@v_sandz
@v_sandz 4 жыл бұрын
@@singlebw4065 возвращай объект с публичными свойствами/методами. А в контексте родителя уже описывай приватные свойства/методы
@alexanderyinyang1436
@alexanderyinyang1436 6 жыл бұрын
Спасибо за уроки. Поясни пожалуйста, на kzbin.info/www/bejne/eHK2oqiXrcaVldk обязательно внутри класса вызывать статический метод с указанием названия класса, или можно опустить?
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Пожалуйста. Смотрите static говорит о том что свойство, или метод нужны только для внутреннй реализации какой-то логики. И рпи наследовании класса эти методы и свойства не наследуются. Поэтому смотрите сами, какая функциональность вам нужна.
@alexanderyinyang1436
@alexanderyinyang1436 6 жыл бұрын
@@YauhenKavalchuk а где здесь наследование? Внутри конструктора класса Task вызывается статический метод класса Task. Я просто думал, что внутри класса должны быть видны его методы
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Иногда определённую реализацию функционала внутри класса прячут. Это распространённая практика
@Venitch.
@Venitch. Ай бұрын
не понял, зачем было называть геттер как входящую переменную - это же привело к путанице... get taskIsCompleted() {...}; -- явно понятнее...
@YauhenKavalchuk
@YauhenKavalchuk 12 сағат бұрын
Согласен
@TheKirk1989
@TheKirk1989 4 жыл бұрын
а почему не static counter? И почему бы не объяснить что значит этот static? Почему все объясняют эти классы в отрыве от ДО ЕС6 JS? это типо заговор? Это же тупо сахар для тех, кто хочет чтобы было более похоже на другие языки, и тот-же static это тупо function MyClass ( ) { }; MyClass.staticProp = . . . ; ( присваивание объекту функции "типа конструктора" статического свойства и всё . . . ) но мало того, что даже это не казано, так у нас ещё и Task.counter. . Прям заговор какой-то мать его, или объясняющие сами не знают на что обращать внимание при объяснении! А это кардинально важно, если ты изучил обычное ес5 прототипное наследование, то наверное ПЕРВОЕ что нужно, это методом сравнения преподносить новый материал? ( ведь повторюсь снова ес6 синтаксис это вссеееееггооо лишь САХАААР ) Или в коричневых потоках комментов в духе " о боже, это лучеее обяснение " забывается главная цель сего действия на ютубе?
@AlexanderYukal
@AlexanderYukal 6 жыл бұрын
Мдааа уж, со статическими свойствами класса что-то они перехитрили. В нормальном языке программирования эти данные объявляются внутри класса. Прям дичь какая-то
@РоманГирич-з5ш
@РоманГирич-з5ш 5 жыл бұрын
так исторически сложилось ранее ) как уже говорилось в видео, что классы это просто сахар, при переводе в ЕС5 это все функции =)
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
¯\ _(ツ)_/¯
@compot8279
@compot8279 4 жыл бұрын
что -_-,
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
?
@uzurbatya
@uzurbatya 5 жыл бұрын
ты што, тоже англичанином заделался? Когда ж вы поймете, как убого вы звучите со своими "джауашкрипт" и "часк"
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Не так убого, как подобного рода комментарии
ES6 #9 Наследование (Inheritance)
9:23
webDev
Рет қаралды 7 М.
ES6 #12 Символы (Symbols)
8:32
webDev
Рет қаралды 23 М.
哈莉奎因被吓到了#Cosplay
00:20
佐助与鸣人
Рет қаралды 32 МЛН
SHE CAME BACK LIKE NOTHING HAPPENED! 🤣 #shorts
00:21
Joe Albanese
Рет қаралды 19 МЛН
ES6 #13 Промисы (Promise)
8:59
webDev
Рет қаралды 24 М.
哈莉奎因被吓到了#Cosplay
00:20
佐助与鸣人
Рет қаралды 32 МЛН