Для правильного выполнения д/з не забывайте следовать гайдлайну
- создайте новую ветку
js-classes
от веткиmaster
в вашем проекте и сделайтеcheckout
- создайте новую папку
js-classes
, выполняйте задание в этой папке
Вам необходимо создать родительский класс по "производству авто". Создайте 3 дочерних класса, которые будут наследовать от родительского. Создайте сущности каждого отдельного класса.
Используйте только ES5 синтаксис
- создайте файл
inheritance-es5.js
- создайте класс
Car
: функция, которая принимает 7 аргументов:- name
- model
- year
- color
- maxSpeed
- fuelCapacity - опциональный параметр, используйте значение
60
по дефолту - fuelConsumption - опциональный параметр, используйте значение
10
по дефолту
- напишите
getFullName
метод класса, который должен возвращать название авто (e.x. name + model) - напишите
getAge
метод класса, который должен возвращать возраст авто (ТЕКУЩИЙ ГОД - ГОД ВЫПУСКА АВТО) - напишите
changeColor
метод класса, который должен:- принимать один параметр (color);
- если у авто уже есть такой цвет, показывать сообщение с текстом (например - "Авто уже покрашено в красный цвет");
- если нет, поменять цвет авто и сообщить об этом пользователю.
- напишите
calculateWay
метод класса, который должен:- принимать 2 аргумента:
kilometers
иfuel
; - прверять если
fuel
< 10, сообщить пользователю; - посчитать среднее время пути, сообщить пользователю;
- проверить, нужна ли дозаправка во время пути и сообщить пользователю (если нужна, то сколько)
- принимать 2 аргумента:
- создайте 3 дочерних класса, которые буду наследовать от класса
Car
в ES5 стиле (например:BMW
,Lexus
, etc. <--- по желанию) - создайте каждому классу уникальные свойства, которые будут присущи только этим уникальным классам( напрмер пусть все BMW могут быть оснащены панорамной крышей, Lexus могут иметь климат контроль и т.д. (примдумайти свои уникальные свойства) )
- создайте уникальные методы, которые будут присущи этим дочерним классам (на ваш вкус)
- создайте по крайней мере по одной сущности каждого класса
- проверьте, как работает ваш код (используйте Chrome Dev Tools для отладки)
Используйте только ES6 синтаксис (let
, const
, arrow functions
и т.д.)
- создайте файл
inheritance-es6.js
- проделйте те же шаги как и в ES5 стиле, только с использованием ES6 синтаксиса (используйте ключевые слова
extends
иsuper
для наследования)