Показать сообщение отдельно
  #1 (permalink)  
Старый 14.10.2015, 19:39
Новичок на форуме
Отправить личное сообщение для WishMaster Посмотреть профиль Найти все сообщения от WishMaster
 
Регистрация: 28.05.2013
Сообщений: 8

Наследование класса
Всем привет. ООП в Javascript начал изучать недавно, все делал по мануалам. Возникла проблема, которую я не понимаю, но возможно, местные гуру помогут решить этот вопрос. Имеется базовый класс Bote, и класс, который его расширяет - FreeBitcoinAccountController.
Код класса Bote:
function Bote() {
    this.accounts = {};
    //...остальной код...
    this.enabled = false;
}
Bote.prototype.init = function () {
    //... остальной код функции ...
    this.log('Бот загружен');
};


Код класса FreeBitcoinAccountController:
function FreeBitcoinAccountController() {
    //...остальной код...
    Bote.apply(this);
}
FreeBitcoinAccountController.prototype.init = function () {
    alert();//Bote.prototype.init.call(this);
    //...остальной код...
    this.main();
};
FreeBitcoinAccountController.prototype = Object.create(Bote.prototype);
FreeBitcoinAccountController.prototype.constructor = FreeBitcoinAccountController;


Далее создаю экземпляр класса, и вызываю метод init, но он почему-то вызывается из базового класса Bote, а не из FreeBitcoinAccountController. А когда переименовываю метод init в Bote, то вываливается ошибка, что метод не найден. Если я не ошибся, должно ведь происходить наследование класса, разве нет? И метод init должен вызываться из FreeBitcoinAccountController, даже если его нет в классе Bote (тем более, что класс Bote вообще не создается)
Ответить с цитированием