Folgender Code:
Der Aufruf window.setTimeout(obj.methode, 1000); liefert ein undefined zurück, da die Eigenschaft durch die GC ja bereits entfernt worden ist. Man muss dort bekanntlicherweise mit einen var that = this; und alert(that.eigenschaft) arbeiten.
Aber warum greift der zweite Aufruf alert (obj.eigenschaft);? Da wird der Wert zurückgegeben. Entweder hab ich da was falsch verstanden oder Closures arbeiten doch anders als ich dachte.
Peter
PS: Aaaaaaanja!!!
PHP-Code:
function Konstruktor ()
{
this.eigenschaft = 'bla';
this.methode = function()
{
alert(this.eigenschaft);
}
}
var obj = new Konstruktor();
window.setTimeout(obj.methode, 1000);
window.setTimeout(
function()
{
alert (obj.eigenschaft);
}, 2000);
Aber warum greift der zweite Aufruf alert (obj.eigenschaft);? Da wird der Wert zurückgegeben. Entweder hab ich da was falsch verstanden oder Closures arbeiten doch anders als ich dachte.
Peter
PS: Aaaaaaanja!!!
Kommentar