Выбор ответа Middle Ошибки обновлено
Зачем this.name в своём классе ошибки
Вопрос
Зачем в конструкторе своего класса ошибки пишут this.name = 'HttpError'?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Иначе name берётся из Error.prototype и равен 'Error', тип не виден в логах. name это обычное свойство, по умолчанию оно приходит из Error.prototype и равно 'Error'.
Варианты ответа
- Иначе
nameберётся изError.prototypeи равен'Error', тип не виден в логахправильный ответ - Иначе
instanceof HttpErrorвсегда будетfalse, ведь проверка идёт поname - Иначе не заполнится
message: конструкторErrorчитает его изname - Иначе ошибку нельзя бросить через
throw, движок требует непустойname
Разбор
name это обычное свойство, по умолчанию оно приходит из Error.prototype и равно 'Error'. Поэтому String(new HttpError('x')) без явного name даёт 'Error: x', и в логах непонятно, что это за ошибка. instanceof работает по цепочке прототипов и от name не зависит. message заполняет super(message). Бросить можно что угодно, даже без наследования.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.