Измените init
, чтобы привязать обратный вызов к исходному контексту:
this.init = function() {
this.connection.detectInitialConnection(
this.initialConnectionDetected.bind(this));
}
К сожалению, bind
поддерживается не во всех браузерах , но вы можете захватить текущее значениеthis
в замыкании для достижения аналогичного эффекта:
this.init = function() {
var that = this;
this.connection.detectInitialConnection(function(detected) {
that.initialConnectionDetected(detected);
});
}
Еще один подход - сделать detectInitialConnection
способным обрабатывать необязательный параметр контекста:
this.detectInitialConnection = function(callbackFunction, _this){
setTimeout(function() {
callbackFunction.apply(_this || this, arguments);
}, 1000, [true]);
}
You 'затем вызовите его так:
this.init = function() {
this.connection.detectInitialConnection(
this.initialConnectionDetected, this);
}
Цель каждого из этих примеров - сохранить ссылку на значение this
из контекста, в котором был вызван detectInitialConnection
.