Очень просто, у меня есть много классов, которые обмениваются переменными и имеют свои собственные переменные. Поэтому я создал суперкласс под названием Resource и многие подклассы. Проблема в том, что я хочу иметь возможность устанавливать и получать любую ценность. Я упростил код, но этого я не могу сделать. Имейте в виду, что в каждом классе есть много переменных, включая суперкласс, и я не хочу переопределять класс каждый раз.js prototype class.create сосуществование между переменными в подклассе и суперклассе
var MySuperClass = Class.create({
initialize:function() {
var a;
var b;
var c;
//Getters
this.getA=function() {
return a;
};
this.getB=function() {
return b;
};
this.getC=function() {
return c;
};
//Setters
this.setA=function (val) {
a = val;
};
this.setB=function (val) {
b = val;
};
this.setC=function (val) {
c = val;
};
//end Setters
},
sub:function() {
return this.getA()-this.getB()-this.getC();
}
});
var MyClass = Class.create(MySuperClass, {
initialize:function() {
var d;
var e;
//Getters
this.getD=function() {
return d;
};
this.getE=function() {
return b;
};
this.getC=function() {
return c;
};
//Setters
this.setA=function (val) {
a = val;
};
this.setB=function (val) {
b = val;
};
this.setC=function (val) {
c = val;
};
//end Setters
},
add:function() {
return this.getA()+this.getB()+this.getC()+this.getD()+this.getE();
}
});
function test() {
myclass=new MyClass();
myclass.setA(1);
myclass.setB(0);
myclass.setC(3);
myclass.setD(2);
myclass.setE(3);
var result=myclass.add();
var result2=myclass.sub();
alert(result+' '+result2);
}
Конечно подкласса перекрывая суперкласс инициализации поэтому значения не могут быть доступны. Как я могу инициализировать переменные подкласса и переменные суперкласса, чтобы с ними можно было получить доступ из тестовой функции?
Как всегда, спасибо за вашу помощь
Я нашел эту старую дискуссию, связанную с частными переменными в классах прототипов. Не очень помогает, он просто заявляет, что это непросто, и что для его выполнения прототип - это уродливое дело. [Реализация частных переменных для классов] (https://prototype.lighthouseapp.com/projects/8886-prototype/tickets/152). Есть предположения? – user1432655