Показать сообщение отдельно
  #3 (permalink)  
Старый 12.02.2018, 14:19
Интересующийся
Отправить личное сообщение для Герасим Посмотреть профиль Найти все сообщения от Герасим
 
Регистрация: 22.09.2017
Сообщений: 24

Помогите разобраться пожалуйста. Открываю то что есть.
файл index.html
<script>
	var SWDataSource = null;//Источник данных
	var SwDataClient = null;//Потребитель данных

	window.onload = function() {
		console.log('Документ и все ресурсы загружены');//!! и это сообщение я получаю!
		//создаю объект Источник данных
		SWDataSource = new TSwitchDataSource();
		//создаю объект Потребитель данных
		SwDataClient = new TSwitchClient();
		SwDataClient.draw();//так и есть вызывается draw, вижу его вывод в консоли
		//прикреплю его к источнику данных
		SWDataSource.addSubscriber(SwDataClient.subcribe);//
//в которой происходит this.subcribers.push(func);
 	};

потом в Источнике данных идёт вызов
TSwitchDataSource.prototype.sendStageToSubscribers = function () {
   ....................
   this.subcribers[i](this.stage);//

Тут и теряется контекст. в итоге функция subcribe выполняется (так как она запихнута в массив вызовов)
но когда в ней доходит до вызова this.draw; то так как корректного контекста this нет, и возникает ошибка.
Значит надо как-то передать контекст.
Как это сделать?
Ответить с цитированием