分为两个方向去解决
组合继承的方法 Super构造函数会被调用两次--这是缺点

function Father(){
    this.value = [1,2,3,4,5];
}
Father.prototype.getValue = function(){
    return this.value;
}
function Son(){
   //
   Father.call(this);
}
Son.prototype = new Father();
var son1 = new Son();
//尝试通过子类更改父类属性
son1.value.push(5); //引用值类型是无法改变父类的属性好方法了
console.log(son1.value);
console.log(son1.getValue());

//子类可以找到父类的属性和方法,但是并不能更改父类的属性和方法
最好的继承方法 --寄生组合的继承方式(即圣杯模式)
如下:

function inherit(Target,Origin){
    function F(){};
    Origin.prototype = F.prototype;
    Target.prototype = new F();
    Target.prototype.constructor = Target;
    Target.prototype.uber = Origin.prototype;
}

圣杯继承