Я думаю, вам нужно использовать замыкание, чтобы добиться того, что вы пытаетесь сделать.Примерно так:
Class1 = function() {
var x = 4;
return {
getVar: function() {
return x;
}
}
} ();// executes the function immediately and returns an
//an object with one method - getVar. Through closure this method
//still has access to the variable x
Class2 = function() { };// define a constructor function
Class2.prototype = Class1;//have it inherit from Class1
Cl2 = new Class2();//instantiate a new instance of Class2
console.log(Cl2.x);//this is undefined
console.log(Cl2.getVar());//this outputs 4
Это одна из замечательных особенностей javascript в том, что в javascript вы можете достичь того же, что и в языке на основе классов, без лишних ключевых слов.Дуглас Крокфорд (всегда полезно проконсультироваться о javascript) объясняет наследование прототипа здесь
Редактировать:
Просто взглянул на ваш вопрос. Есливы хотите, чтобы вновь созданные методы в вашем классе обращались к переменной в базовом классе, тогда вам придется вызывать метод getVar в вашем собственном методе. Например:
Class2 = function() {
this.getVar2 = function() {
return this.getVar();
}
};
console.log(Cl2.getVar2()) //outputs 4