Войти Регистрация
Фронтенд

48. Объявление Авито на классах: поля, super и вызов из конструктора

Средняя

Что выведет код? Запишите строки по порядку, по одной на строку.

В работе: Базовые классы виджетов и моделей: почему в наследнике поле undefined, хотя оно объявлено.

Как проверяем Код не запускаем — предскажите вывод. Пишите строки по порядку, по одной на строку; пробелы по краям не важны. Ответ один на подход: после него показываем разбор.
классынаследованиеsuperполя классов

Источник: на задачах Авито: карточка объявления. Условие пересказано своими словами.

  1. class Ad {
  2. title = 'Объявление';
  3. constructor() {
  4. console.log('Ad:', this.describe());
  5. }
  6. describe() {
  7. return this.title;
  8. }
  9. static create() {
  10. return new this();
  11. }
  12. }
  13. class CarAd extends Ad {
  14. title = 'Авто';
  15. price = 1200000;
  16. constructor() {
  17. super();
  18. console.log('CarAd:', this.describe());
  19. }
  20. describe() {
  21. return super.describe() + ', цена ' + this.price;
  22. }
  23. }
  24. const ad = CarAd.create();
  25. console.log(ad instanceof Ad, ad.constructor.name);
  26. console.log(Object.getPrototypeOf(CarAd) === Ad, Object.hasOwn(ad, 'describe'));