Выбор ответа Middle Ошибки и логирование обновлено

name у наследника Error

Вопрос

Что выведет код?

class NotFoundError extends Error {}
const e = new NotFoundError('User 7');
console.log(e.name, e instanceof Error);

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Error true. Свойство name наследуется с Error.prototype и равно "Error", если не переопределить его в классе.

Варианты ответа

  1. NotFoundError true
  2. NotFoundError false
  3. Error trueправильный ответ
  4. Error false

Разбор

Свойство name наследуется с Error.prototype и равно "Error", если не переопределить его в классе. Поэтому в конструкторе пишут this.name = "NotFoundError". При этом instanceof Error истинно: это наследник.

  • Имя класса автоматически в name не попадает.
  • instanceof ложным быть не может, класс расширяет Error.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.