1
var Super = function() {}
Super.prototype.newOfThisKind = function() {
return new this.myConstructor()
}
var Sub1 = function() { this.myConstructor = Sub1 }
var Sub2 = function() { this.myConstructor = Sub2 }
Sub1.prototype = new Super()
Sub2.prototype = new Super()
console.assert(new Sub1().newOfThisKind() instanceof Sub1)
console.assert(new Sub2().newOfThisKind() instanceof Sub2)
Этот код работает, как ожидалось, но как я могу написать newOfThisKind без установки myConstructor в каждом подклассе?получить конструктор подкласса в суперкласс
Я не думаю, что это может быть сделано. Но зачем это нужно? Если это просто для запуска какого-либо действия, просто создайте второй метод. – paulodiovani
Я не уверен, что вы имеете в виду. Цель состоит в том, чтобы использовать newOfThisKind для любого экземпляра Super. – nxxy