У меня есть код, который выглядит следующим образом:Прототип для частных суб-методов
var baseClass = function() {
// CODE
var subClass = function() {
// MORE CODE
}
}
Добавление методов BaseClass прекрасно, я просто использовать
baseClass.prototype.newMethod = function() {
// NEW CODE
}
Мой вопрос, как я должен добавить методы подкласс? Единственный способ просто сделать его общедоступным?
######## EDIT ##############ОК, так что я переставить код так подклассу находится вне BaseClass. Я передаю 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;
}
я получаю ошибку о том, родитель не определен.
В принципе у меня есть довольно простое веб-приложение, которое имеет две стороны, сторону просмотра и сторону редактирования. Я создаю базовый класс, который включает все необходимое для просмотра, и я хочу добавить методы, необходимые для редактирования в другом файле, чтобы они загружались только тогда, когда пользователь находится на странице редактирования.
Просто выполните subClass.prototype.newMethod, изнутри baseClass, no? Я думаю, что это ответ gilly3. Лично я не понимаю, почему вам нужно добавлять методы после определения «класса», почему вы должны сделать JavaScript настолько сложным? Это похоже на процедурное создание класса, а не только его определение. –