Я упрощаю свой пример, чтобы понять суть моего вопроса. У меня есть базовый класс Javascript с привилегированной функцией. Мне действительно нужно скрыть myVar от просмотра, и я также хочу наследовать от baseClass
.
function baseClass() {
var myVar = new coolClass();
this.myPrivileged = function() {
myVar.coolFunction();
}
}
Проблема в том, что я пытаюсь наследовать так:
function childClass() {
}
childClass.prototype = new baseClass();
childClass.prototype.reallyCoolFunction = function() {//Really cool stuff}
, но когда-либо будет создан только один экземпляр myVar, и он не будет работать, потому что coolClass
имеет свойства, зависящие от экземпляра.
так что если я сделаю это:
var x = new childClass();
var y = new childClass();
и x, и y будут иметь одинаковый экземпляр baseClass.myVar
Итак, насколько я могу судить, у меня есть два варианта:
- Сделать функцию
myPrivileged
прототипом функции и выставить myVar
- Скопируйте и вставьте внутренности
baseClass
в childClass
(из-за чего мне хочется заткнуть рот)
Я не гуру javascript, поэтому я надеялся, что у кого-нибудь будет хорошая идея.
Заранее спасибо