@romaro

Зачем дублировать свойство, которое было передано в super()?

При изучении исходников одного проекта обнаружил такой код:
class AssertionError extends Error {
  constructor (message) {
    super(message)
    this.message = message || 'Assertion error'
    this.code = 'ASSERTION_ERROR'
    this.status = 500
  }
}


Правильно ли я понимаю, что свойство message дублируется в наследуемом классе, чтобы его значение можно было получить из родительского класса лишь в том случае, если оно было явно задано при вызове AssertionError. При этом в AssertionError свойство нужно было задефолтить.

Или я что-то недополнял про super()?
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 1
@EgorSvinarev
Конструкция super нужна для того, чтобы передать в конструктор родительского класса необходимые аргументы. В данном случае конструктор родительского класса Error, принимает в аргументы строку, указывающую сообщение об ошибке. Если в конструктор класса AssertionError передать пустую строку, то поле message заполниться значением "Assertion error".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы