JavaScriptを使用する親クラスから値を継承するサブクラスを作成するにはどうすればよいですか?継承する必要があるこれらの値は、親クラスのパラメータによって定義されます。親クラスと子クラスの間に1対多の関係が必要です。ここではソングが1つのまたは複数のトラックで構成され、私のコード例は次のとおりです。JavaScriptサブクラス - パラメータで定義された親値を継承する方法?
function Song(x){
this.x = x;
}
function Track(y){
Song.call(this);
this.y = y;
}
Track.prototype = new Song;
var mySong = new Song(1);
mySong.guitar = new Track(2);
mySong.bass = new Track(3);
// goal is to output "1 1 2 3" but currently outputs "undefined undefined 2 3"
console.log(mySong.guitar.x + " " + mySong.bass.x + " " + mySong.guitar.y + " " + mySong.bass.y);
この質問は、このサブクラスの質問に似ている(http://stackoverflow.com/questions/1204359/javascript-object-sub -class)ではなく、パラメータで定義された変数を使用します。今はparentObject.childObject.parentVariableを呼び出そうとするとundefinedが返されます。この作業を行うためにコード内で変更する必要があるのは何ですか、またはこの一対多の親子関係をコード化する良い方法がありますか?
全体のセットアップは、私にはあまり意味がありません。 'Track'を' Song'インスタンスに割り当てる必要がありますか?*何らかの理由でその特定のインスタンスからプロパティを継承する必要がありますか? 'Track'が' Song'のサブクラスであっても、mySongとmySong.guitarはまったく異なる2つのインスタンスです。 –
私は同意します...何か奇妙なここです。 Song()に多くのTrack()オブジェクトを持たせたい場合、Song()には "this.aTracks = new Array();"彼は "mySong.aTracks.push(新しいトラック(何でも)"))することができました。しかし、ここでの目標が何であるかは言うまでもありません。 – Krumelur