那就A-继承->B-继承->C-继承->D...,这样一直下去(你要直接继承多个是不太好办的),例如:<script>
function objA(){
this.tempName1 = "objA";
}
function objB(){
this.tempName2 = "objB";
}
function objC(){
this.tempName3 = "objC"
}objB.prototype = new objA(); //B先继承A
objC.prototype = new objB(); //C再继承B,那么也继承了A
objectC = new objC();alert(objectC.tempName1)
alert(objectC.tempName2)
alert(objectC.tempName3)
</script>

解决方案 »

  1.   

    Bencalie,我觉得你说的是对的,这样好像是模拟了多重继承的功能,采用的是原型对象实现的,可是还有其他的方法吗?
      

  2.   

    第二种解决方案(要求版本 5.5):
    call 方法
    应用于:Function 对象
    调用一个对象的一个方法,以另一个对象替换当前对象。
    <script>
    function objA(){
    this.tempName1 = "objA";
    }function objB(){
    this.tempName2 = "objB";
    }function objC(){
    objA.call(this);
    objB.call(this);
    this.tempName3 = "objC";
    }objectC = new objC();
    alert(objectC.tempName1)
    alert(objectC.tempName2)
    alert(objectC.tempName3)
    </script>
      

  3.   

    再复杂一点:<script>
    function objA(strName, ...){
    this.tempName1 = "objA_" + strName;
    }function objB(strName, ...){
    this.tempName2 = "objB_" + strName;
    }function objC(strID, strName, ...){
    var arg = Array.prototype.slice.call(arguments, 1);
    objA.apply(this, arg);
    objB.apply(this, arg);
    this.tempName3 = "objC_" + strName;
    }objectC = new objC();
    alert(objectC.tempName1)
    alert(objectC.tempName2)
    alert(objectC.tempName3)
    </script>