2012-11-13 128 views
-2

我有這樣的代碼:Javascript繼承不工作

function a() { this.j = "aa"; } 
var b = { o:2 }; 
b.prototype = new a(); 
alert(b.j); //alert "undefined" 

爲什麼會不確定?

+4

因爲這不是繼承在JavaScript中的工作原理。 – Pointy

回答

2
function a() {this.j="aa";} 
function b() {this.o=2;} 
b.prototype=new a(); 
b.prototype.constructor=b; 

var c = new b(); 

alert(c.j); 
0

轉向 「B」 成一個函數:

function B() { 
    this.o = 2; 
} 

然後給它一個原型:

B.prototype = new a(); 

然後構建一個 「B」:

var b = new B(); 

然後看看你的警報報告。