Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.10.2017, 19:10
Профессор
Отправить личное сообщение для Faab Посмотреть профиль Найти все сообщения от Faab
 
Регистрация: 16.04.2012
Сообщений: 310

Наследование классов в JavaScript
Здравствуйте.
Прочитал статью в учебнике сайта. Написано хорошо, но когда пытаешься применить на практике - ничгео не работает - всё из-за плохого знания языка.

Создал свой пример (который не работает), для освоения материала - старался сделать его как можно проще.

Есть родительский класс и четыре потомка.

Вопросов много, но постараюсь быть конструктивным.

1) Как правильно обращаться к методам родителя. Сейчас у меня это получается коряво:
// Menu.prototype.eventClickMenuItem
self.__proto__.__proto__.actionContentGet(self);;

// Green.prototype.actionLoadContent, Red.prototype.actionLoadContent
this.__proto__.viewTitle(undefined, color, title);


2) Когда я обращаюсь к родителю метода viewTitle, я вынужден передать переменные как аргументы метода. Можно как то задать в методе actionLoadContent значения свойствам this.color и this.title , и потом уже вытащить эти значения в методе viewTitle?

3) Сейчас, что бы обратиться из родительского класса к методу потомка, я вынужден создать экземпляр класса потомка, и уже из этого экземпляра класса, обратиться к нужному мне методу.

При этом если я уйду в метод потомка, я теряю все значения, которые сохранены в свойствах родителя. Что с этим делать?

И каждый раз создавая новые экземпляры классов, что происходит со старыми? Удаляются ли "старые" экземпляры класса? Память не страдает?
switch(self.color){
        case 'red':
            var model = new Red();
            model.actionLoadContent(self.color, self.title);
            break;
        case 'green':
            var model = new Green();
            model.actionLoadContent(self.color, self.title);
            break;
        case 'yellow':
            var model = new Yellow();
            model.actionLoadContent(self.color, self.title);
            break;
        default:
            throw ('selected unknow color');
    }


Спасибо

Последний раз редактировалось Faab, 21.10.2017 в 09:32.
Ответить с цитированием
  #2 (permalink)  
Старый 20.10.2017, 19:52
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,736

Faab,
Сообщение от Faab
Как правильно обращаться к методам родителя.
Вы переопределяете метод родителя у ребенка и пытаетесь из ребенка вызвать метод родителя?
Если нет, то методы родителя вызываются как свои собственные.

На остальные вопросы я не могу сформулировать ответ, уверен, кто-нибудь другой вам ответит.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
наследование в javascript Moloch Элементы интерфейса 6 22.07.2015 11:50
Эмулятор классов на JavaScript yriiarutiunian Ваши сайты и скрипты 4 24.10.2014 21:26
наследование в javascript mat5978 Общие вопросы Javascript 18 23.11.2011 16:17
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34