Редактировать : Этот вопрос отличается от Как расширить класс без необходимости использовать super в ES6? - хотя ответы связаны, это очень очевиднодругой вопрос.Это связано с конкретной ошибкой, и два основных участвующих класса Person
и CreationEvent
фактически не наследуются друг от друга.
У меня есть два класса ES6, Person
и CreationEvent
(CreationEvent
наследуется от Event
).Я хочу сделать new CreationEvent
, когда я сделаю new Person
(так как CreationEvent
является частью событий в истории учетной записи человека).
Запуск new CreationEvent()
на немсобственный работает отлично.Однако я не могу запустить new Person()
.
Даже при уменьшенной версии кода все равно происходит сбой:
class Event {
constructor() {
this.time = Date.now()
this.tags = []
}
}
class CreationEvent extends Event {
constructor() {
this.description = "Created"
}
}
class Person {
constructor(givenName, familyName, email) {
var creationEvent = new CreationEvent()
}
}
Запуск new Person()
возвращает
ReferenceError: Должен вызывать супер-конструктор в производном классе перед доступом к 'this' или возвращением из производного конструктора
Как создать новый объект ES6 в конструкторе другого объекта?