Вопрос, как передать значение свойства потомкам? В качестве примера, мне нужно чтобы все потомки сохранили контекст, однако это не сводится к проблеме потери контекста. У меня есть архитектура кода:
function App() {
// ~ ... какие-то свойства
let mWindow = new MainController(this), /* новый экземпляр, для примера передаем в него контекст */
subController = new SubController();
let event = new Event('myEvent');
addEventListener('myEvent', function () {subController.render('add')});
/* Важный метод */
this.getEvent(){
return event; /* вызывает срабатывание addEventListener -> subContrl.render() */
};
this.run(){
mWindow.init();
}
}
function MainController(app){ /* В данной строке я хочу передать что-то (Например, контекст)*/
this.app = app; /* сохраняю это*/
this.content_gen = function(arg) {
dispatchEvent(this.app.getEvent("main"));
}
};
this.init = function (){ /* SOMETHING */};
}
function SubController(){
MainController.call(this) /* Отнаследовали */
this.render = function(arg) {console.log(this)}; /*this: {SubController; app = undefined}*/
/* информация (контекст) в obj.app не передана */
/* Понятно что я его и не передавал. Как это сделать?*/
/* По аналогии с тем что выше, получается необходимо создать экземпляр и передать в него this.app*/
/* Либо же сделать SubController(app), но откуда запишется значение в app??*/
}
Возможно, кстати, есть более умный вариант передачи контекста при данной архитектуре (в таком случае добавлю еще один вопрос).
Вам надо тогда и сам контекст передавать, ведь MainController
принимает параметр
function SubController(app){
// передаем контекст
MainController.call(this, app) /* Отнаследовали */
dispatchEvent(this.func)
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Проблема - нужно удалить комментарий с текущим ID по клику на DeleteНе могу связать ID комментария и функцию удаления
Направьте на путь истинныйЕсть интернет-магазин