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

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект