function ClassA()
{
this.a=[];
this.aa=100;
}
function ClassB()
{
this.b=function(){return "classbb"};
}
ClassB.prototype=new ClassA();
Array.prototype= new ClassB();
var array1= new Array();
alert(array1.b());
为什么Array不能继承ClassA和ClassB?谢谢。
最佳答案
这并不是让 Array.prototype 从对象继承的方法。它会覆盖 Array.prototype ,这显然是不允许的。
但是,您可以使用 ClassA/ClassB 的属性/方法扩展 Array 的原型(prototype),如下所示:
function ClassA() {
this.a=[];
this.aa=100;
}
function ClassB() {
this.b=function(){return "classbb"};
}
ClassB.prototype = new ClassA;
var instB = new ClassB;
for (var l in instB){
Array.prototype[l] = instB[l];
}
var array1 = [];
alert(array1.aa);
您还可以:
Array.prototype.classb = new ClassB;
var array1 = [];
alert(array1.classb.aa);
关于javascript - 一个关于javascript中Array继承的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5429583/