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

Наверно, где-то у меня в коде ошибка.. У меня алерт не выводится в переопределенном методе. Было бы очень хорошо, если бы кто-нибудь помог с нахождением ошибки) Вот мой код
var Engine = {
    modules: {},
loadModule: function (module_data)
    {
        $.getScript('template/js/' + module_data.js_file, function () {
            eval('Engine.modules[module_data.type] = new ' + module_data.name + '();'); //создаем экземпляр класса FreeBitcoinAccountController (немного кривовато, но смысл в том, что все загружается динамически, в том числе имена классов)
            Engine.modules[module_data.type].init(); //вызываю метод init из созданного класса
        });
    }
}

//freebitcoin.js
function FreeBitcoinAccountController() {
    Bote.apply(this, arguments);
}
FreeBitcoinAccountController.prototype.init = function () {
    Bote.prototype.init.call(this);
    alert();//Alert не выполняется! как и дальнейший код
//код
    this.main();
};
FreeBitcoinAccountController.prototype = Object.create(Bote.prototype);
FreeBitcoinAccountController.prototype.constructor = FreeBitcoinAccountController;

//bote.js
function Bote() {
//код
}
Bote.prototype.init = function () {
    this.initContent();
//код
    this.log('Бот загружен');
};




P.S. Заменил
FreeBitcoinAccountController.prototype = Object.create(Bote.prototype);
FreeBitcoinAccountController.prototype.constructor = FreeBitcoinAccountController;

на
FreeBitcoinAccountController.prototype.__proto__ = Bote.prototype;

Теперь все работает. Но зачем же тогда в учебнике по созданию классов написан именно тот код, который был у меня изначально?

Последний раз редактировалось WishMaster, 14.10.2015 в 21:36.
Ответить с цитированием