Показать сообщение отдельно
  #4 (permalink)  
Старый 17.05.2018, 01:45
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Можно префикс одинаковый делать
function superize(Child, prefix) {
    var p1 = Child.prototype, p2 = p1.__proto__;
    if (p2) {
        p1[prefix + 'constructor'] = p2.constructor;
        for (var p in p2) {
            if (p1.hasOwnProperty(p) && typeof p2[p] == 'function') {
                p1[prefix + p] = p2[p];
            }
        }
    }
}

function ClassA() {}
ClassA.prototype.calc = function () {};

function ClassB() {
    this.ClassA_constructor();
}
ClassB.prototype = Object.create(ClassA.prototype);
ClassB.prototype.constructor = ClassB;
ClassB.prototype.calc = function () {
    this.ClassA_calc();
};
superize(ClassB, 'ClassA_');

console.log(new ClassB);
Ответить с цитированием