JürgenB: Referenz Problem (Countdown)

Beitrag lesen

Hallo rushed,

window.setTimeout('zaehler(counter,start,id)', 100)
hab ich nun geändert in
window.setTimeout('zaehler(this.counter,this.start,this.id)', 100)
geht aber auch nicht.

wie wahsaga schon schrieb, laufen die per setTimeout aufgerufenen Funktionen im Kontext von window. "this" zeigt also auf window. Deine Variablen sind aber "dem window" nicht bekannt.

Das setTimeout-Problem mit Parametern lässt sich lösen, indem man auf Parameter verzichtet und nur globale Variablen benutzt. Die sind "dem window" bekannt. Diese Lösung ist einfach, aber auch riskant. Globale Variablen könne bei größeren Projekten der Anfang vom Ende sein.

Die Variante, die Wahsage meinte, war, das man sich die Werte merkt, indem man sie in Strings verpackt, also aus counter wird (glaube ich) ""+counter. Diese Variante habe ich nie getestet. Daher bin ich mir hier auch nicht sicher, wie es genau geht. Das Archiv sollte hier aber mehr wissen.

Für mich habe ich mir die schon verlinkte ooP-Variante überlegt.

Gruß, Jürgen