Wer in Javascript programmiert, kennt das Problem vielleicht:
Man möchte „window.setTimeout( function, timems )“ benutzen, um eine eigene Routine aufzurufen, aber man müßte da mal einen Parameter mitgeben, weil das ganze nicht statisch programmiert ist.
Das geht so :
function Klasse () { ... this.timerCheck = function(self) { console.debug("timerCheck: "+ Date.now() +" "+ self.timer ); if ( ( Date.now() - self.timer ) / 1000 > 20 ) { self.close(); return true;; } window.setTimeout( self.timerCheck.bind(null, self), 1000); return false; } this.andereFunktion = function() { ... this.timerCheck(this); ... } }
Der entscheidende Teil ist das self.timerCheck.bind(null, parameter) . Es ruft die Funktion so auf timerCheck(parameter), statt blanko, wie es jahrelang nötig war.
Damit kann man endlich in Objekten, die Instanziiert werden, mehrere Instanzen einer Timerroutine laufen lassen.