Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Урок 31 из 114 · 9 мин
class, constructor, методы класса, new, наследование extends и super, геттеры get.
Все заказы в магазине устроены одинаково: номер, позиции, сумма. Можно сделать «бланк»?
Класс — это бланк. По нему new создаёт сколько угодно заказов.
classclass Order { … } — описание устройства объектов: данные и методы.class Rect {
constructor(w, h) {
this.w = w;
this.h = h;
}
area() {
return this.w * this.h;
}
}
console.log(new Rect(3, 4).area());constructor()new и заполняет свойства.newnew Order(1) — новый объект по шаблону класса.extends · superclass Delivery extends Order — берёт всё у родителя; super(...) вызывает конструктор родителя.class Order {
constructor(id) { this.id = id; }
}
class Delivery extends Order {
constructor(id, address) {
super(id);
this.address = address;
}
}
console.log(new Delivery(7, "Казань"));getget total() { … } — вычисляемое свойство: читается как поле, считается как функция.class Bill {
constructor(items) { this.items = items; }
get total() { return this.items.reduce((s, p) => s + p, 0); }
}
console.log(new Bill([220, 150]).total);Класс нужен, когда объектов одного устройства много и у них есть поведение.
Опиши класс Order: конструктор принимает id и создаёт пустой массив items; метод add(price) кладёт цену; геттер total возвращает сумму.
add добавляет позиции — пока нетtotal считает сумму — пока нетВыберите один ответ.
Что делает new Order(5)?
Выберите один ответ.
Зачем super(id) в конструкторе наследника?
Проверяем состояние обучения…