Предполагая, что вы имеете в виду, что он действителен в SendIdleSignal и недействителен в SendActiveSignal ...
Ваши слушатели событий также должны использовать bind, например:
Event.observe(document, "mousemove", this.sendActiveSignal.bind(this));
Event.observe(document, "keypress", this.sendActiveSignal.bind(this));
Кроме того, если вы используете прототип 1.6 или выше, вы можете использовать
document.observe("mousemove", this.sendActiveSignal.bind(this));
document.observe("keypress", this.sendActiveSignal.bind(this));
Кроме того, если вам нужен универсальный (независимый от фреймворка) способ сделать это, вы можете определить свои функции следующим образом:
sendActiveSignal: function() {
var that = this;
return function() {
that.handlers.each(function(r) {
r.setActive();
});
}
}
тогда ваши обработчики событий / setInterval можно оставить как
Event.observe(document, "keypress", this.sendActiveSignal);