К содержанию

JS-03. Классы и this

На этой странице

На этой странице само задание. Конспект к занятию появится ниже, в «Материалах».

Задание

Самостоятельное задание №1. Работа с контекстом объектов

Определите объект car со свойствами brand, model и year. Добавьте метод getDescription(), который возвращает строку "[brand] [model], выпущен в [year] году.". Метод должен использовать this.

Самостоятельное задание №2.1. Создание класса

Определите класс Book со свойствами title, author и year. Метод getSummary() возвращает "[title] была написана [author] в [year] году".

book.js
class Book {
  // Ваше определение класса
}
 
// Пример использования
const book1 = new Book("Война и мир", "Лев Толстой", 1869);
console.log(book1.getSummary());

Самостоятельное задание №2.2. Наследование классов

Создайте класс Magazine, который наследует Book и добавляет свойство month. Переопределите getSummary() так, чтобы в строке был месяц издания.

P.S. Переопределить - то есть в классе Magazine создать метод getSummary().

magazine.js
// Используйте класс Book из предыдущего задания
 
class Magazine extends Book {
  // Ваше определение класса
}
 
// Пример использования
const mag1 = new Magazine(
  "National Geographic",
  "National Geographic Society",
  1888,
  "Июль",
);
console.log(mag1.getSummary());

Самостоятельное задание №2.3. Методы

Добавьте в класс Book статичный метод compareAge(), который принимает два объекта Book и возвращает сообщение, какая книга издана раньше.

P.S. Статичный метод вызывается без конструктора. Перед именем метода пишите static. Например, static compareAge() {}.

compareAge.js
class Book {
  // Используйте определение класса из задания 2.1
  // и добавьте статичный метод compareAge()
}
 
// Пример использования
const book1 = new Book("Война и мир", "Лев Толстой", 1869);
const book2 = new Book("Анна Каренина", "Лев Толстой", 1877);
console.log(Book.compareAge(book1, book2));

Материалы

Появятся позже.