Есть много способов выполнить наследование в JS. Проблема, с которой вы сталкиваетесь, заключается в том, что все три класса фактически одинаковы, потому что они all ссылаются на объект в BaseClass.prototype
.
Одним из коротких способов наследования от простого базового класса является использование:
ClassA.prototype = new BaseClass();
и
ClassB.prototype = new BaseClass();
Это распадется на более классные классы (то есть классы, которые включают параметры) для конструктора. Я помню, что у Дугласа Крокфорда была функция, которую можно использовать для создания более изощренной версии расширения, однако в настоящее время я не могу ее найти.