Имо, это плохая модель наследования.Что если родительская функция конструктора ожидает передачи параметров?
Прототип дочернего класса должен наследовать от прототипа родительского класса, а не его экземпляра.Несколько библиотек реализуют этот способ:
function inherit(Child, Parent) {
var F = function(){};
F.prototype = Parent.prototype;
Child.prototype = new F();
Child.prototype.constructor = Child;
}
Используется как:
inherit(Derived1, Base);
Затем в функции конструктора дочернего элемента вы должны вызвать функцию конструктора родителей:
function Child() {
Parent.call(this);
}
Конечно, вы также можете добавить свойство superclass
, если хотите.