I는 다음과 같다 코드를 아강? 단순히 공개 방법으로 만 사용하는 유일한 방법입니까? 서브 클래스의 base class 밖에 있도록프로토 타입
######## 편집 ############## OK그래서 코드를 재 배열했습니다. BaseClass를 전달하므로 subClass는 여전히 baseClass 인스턴스의 속성에 액세스 할 수 있습니다.
var baseClass = function() {
var base = this;
this.property_a = 1;
this.property_b = 5;
var sub = new subClass(base);
// CODE
}
var subClass = function(parent) {
var sub = this;
this.property_c = 1;
this.method_a = function() {
return sub.property_c + parent.property_a;
}
// MORE CODE
}
이 괜찮 및 작동하지만이 프로토 타입을 사용하는 방법에 추가 할 때 지금은 새로운 문제를 가지고 :
subClass.prototype.method_b = function(){
return sub.property_c + parent.property_b;
}
내가 부모가 정의되어 있지 않은 말하는 오류가 발생합니다.
기본적으로 나는보기 편과 편집면이있는 매우 간단한 웹 응용 프로그램을 가지고 있습니다. 보는 데 필요한 모든 것을 포함하는 기본 클래스를 만들고 다른 파일에 편집하는 데 필요한 메서드를 추가하여 사용자가 편집 페이지에있을 때만로드되도록합니다. 당신이 정말로 개인 서브 클래스를 유지하려면
baseClass 내부에서 subClass.prototype.newMethod를 그냥 수행 하시겠습니까? 나는 그것이 gilly3의 대답이라고 생각한다. 개인적으로, 왜 '클래스'를 정의하는 데 계속해서 메소드를 추가해야하는지 모르겠다. 왜 자바 스크립트를 그렇게 복잡하게 만드나? 그것은 단지 하나를 정의하는 것과 반대로 절차 적으로 클래스를 만드는 것과 같습니다. –