Итак, похоже, вы не хотите наследования, вам нужна композиция.
Я постараюсь найти хорошую ссылку.
Я не сделал 'Я не могу найти хороших ссылок, и когда я посмотрел на ваш код больше, я запутался.Вот что-то, что выполняет то, что вы хотите, но я не уверен, что это действительно полезно, особенно потому, что оно делает несколько вещей, которые я бы обычно не рассматривал.
function Song(x){
this.x = x;
this.tracks = [];
}
Song.prototype.addTrack = function(track) {
this.tracks.push(track);
}
Song.prototype.output = function() {
// loop on this.tracks and output what you need using info from 'this' and
// each track
}
function Track(y){
this.y = y;
}