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는 전혀 다른 경우입니다. –
동의합니다 ... 뭔가 이상합니다. song()에 많은 Track() 객체가 있기를 원하면 Song()에 "this.aTracks = new Array();"가 있어야합니다. 그는 "mySong.aTracks.push (새로운 트랙 ("뭐든간에 "))"할 수있었습니다. 그러나 여기에 목표가 무엇인지 말하기는 어렵습니다. – Krumelur