ОБНОВЛЕННЫЙ ОТВЕТ: Теперь, когда я дома и на ноутбуке, я вижу ошибку. Вы установили прототип Учителя не в том месте.
Так что вам нужно было сделать следующее:
// Incorrect
function Teacher(first, last, age, gender, interest, subject) {
Person.call(this, first, last, age, gender, interest);
this.subject = subject;
Teacher.prototype = Object.create(Person.prototype);
}
// Correct
function Teacher(first, last, age, gender, interest, subject) {
Person.call(this, first, last, age, gender, interest);
this.subject = subject;
}
Teacher.prototype = Object.create(Person.prototype);
Из-за этого каждый раз, когда вы создавали новый экземпляр Teacher
, выпереопределите его прототип с помощью Person
. Поэтому независимо от того, на что вы установили прототип Учителя, он перезаписывался.