2011-03-25 41 views
1
function ClassA() { this.a=[]; this.aa=100; } 
function ClassB() { } 

ClassB.prototype = new ClassA; 
ClassB.prototype.b=function(){return "classbb"}; 

for (var l in ClassB.prototype){ 

    Array.prototype[l] = ClassB.prototype[l]; 
} 
var array1 = []; 
alert(array1.b()); 

陣列繼承問題在javascript

Array.prototype [1] = ClassB.prototype [1]

Array.prototype替換[l] = ClassB [l]

?有人能幫助我嗎?謝謝。

回答

2

不,你不能。 ClassB沒有財產bClassB.prototype有。
如果你這樣做,在alert(array1.b());array1.bundefined

+0

@ wong2。如果我想定義ClassB.b,我該怎麼做?謝謝 – jsnewman 2011-03-25 12:32:43

+0

@jsnewman我不知道如果我明白你想做什麼...你可以通過函數ClassB(){}定義ClassB.b; ClassB.b = function(){return「classbb」};' – wong2 2011-03-25 12:45:07

+0

@ wong2:我可以這樣寫嗎?http://jsfiddle.net/wquUC/ – jsnewman 2011-03-25 12:54:59