Hallo molily,
Gut, man muss ja keine Methode des Objekts nehmen. Man könnte auch sowas schreiben:
function Klasse() {
this.tueWas();
var instanz = this;
window.setTimeout(function() {
instanz.tueWas();
}, 1000);
}
Der Vorteil davon ist, dass man keine globalen Referenzen auf alle Objekte braucht, die irgendwie Timeouts verwenden. Außerdem muss das Objekt nicht den Kontext kennen, in dem es referenziert wird. So etwas kann sich ja auch immer wieder ändern. Ein bezug auf eine globale Referenz aus dem Objekt selbst heraus schafft da eine ansonsten unnötige Abhängigkeit.
Selbst wenn sich das Objekt nicht selbst registriert, ist es sinnvoller, eine Funktion zu übergeben um sich globale Referenzen zu spaaren. Man hat auch viel mehr Möglichkeiten Informationen aus dem Kontext in dieser Funktion zu verwenden. Andernfalls müsste man diese auch global verfügbar machen oder in den String codieren.
Grüße
Daniel