Javascript,一个通用的实现类继承的函数

 var A = function() {
    this.a = 3;
}
var B = function() {
    this.b = 6;
}

function ext(A, B) {
    var subclass = B;
    //構造一個新的同名類類,用他來繼承父類,並且調用子類都構造函數
    var B = function() {
        A.apply(this.arguments);
        subclass.apply(this.arguments);
    }
    B.prototype = Object.create(new A);
    B.constructor = subclass;
    return B;
}

B = ext(A, B);
var b = new B();
console.log(b.b);

上面的代码,是想写一个通用的函数,用来实现继承
结果console中打印出来是undefined,错在哪里?

    function ext(A, B) {
        var subclass = B;
        //構造一個新的同名類類,用他來繼承父類,並且調用子類都構造函數
        var B = function () {
            A.apply(this);
            subclass.apply(this);
        }
                //不需要了
        //B.prototype = Object.create(new A);
        //B.constructor = subclass;///
       // console.log(B)
        return B;
    }

你传this.arguments干嘛。。肯定是apply修改A和subclass指向B的实例对象了,而且修改构造函数也不是你B.constructor = subclass就能修改的,更改不了