そのコードの問題は何ですか?
var t={a:1};
var g={b:2};
g.prototype=new t();
alert(g.a); //do nothing
そのコードの問題は何ですか?
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);
new とコンストラクターを使用してオブジェクトを作成しますが、現在 t と g として持っているものは既にオブジェクトです。
これは機能するはずです。
function t(){
this.a = 1;
}
function g(){
this.b = 2;
}
g.prototype = new t();
alert(new g().a); // 1
コンストラクターは関数でなければなりません。
これは継承に関する非常に優れた記事です