Как с помощью 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
это два совершенно разных экземпляра. - person Felix Kling   schedule 16.01.2011