在ES6之前类的继承终极大招寄生组合式继承

一、改写原型继承

function inheritObject(o) {
        function F() {

        }
        F.prototype = o;
        return new F();
    }

二、创建继承组合式继承

/** 
     * subClass 子类
     * superClass父类
     */
    function inheritPrototype(subClass, superClass) {
        //复制一份父类的原型副本保存到变量中
        var p = inheritObject(superClass.prototype);
        //修正因为重写自雷原型导致子类的construction属性被修改
        p.constructor = subClass;
        //设置子类的原型
        subClass.prototype = p;
    }