該代碼有什麼問題?Javascript中的繼承:爲什麼這段代碼什麼都不做?
var t={a:1};
var g={b:2};
g.prototype=new t();
alert(g.a); //do nothing
該代碼有什麼問題?Javascript中的繼承:爲什麼這段代碼什麼都不做?
var t={a:1};
var g={b:2};
g.prototype=new t();
alert(g.a); //do nothing
構造函數必須是函數。
一篇很好的文章變量t
包含一個對象,不是一個函數,所以你不能用它像一個對象的構造函數。
您可以使用對象爲原型,但你需要一個構造函數使用原型:
var t = { a: 1 };
function g() {
this.b = 2;
}
g.prototype = t;
alert(new g().a);
您可以使用新的構造函數來創建對象,但你現在所擁有的t和g已經是對象了。
這應該工作;
function t(){
this.a = 1;
}
function g(){
this.b = 2;
}
g.prototype = new t();
alert(new g().a); // 1