Eben gerade nicht: Der Aufruf "closure();" erfolgt im Obj-Kontext (innerhalb des Objekts "Obj"), folgerichtig müsste "this" innnerhalb der closure auf Obj verweisen, tut es aber nicht, und das ist genau der Fehler, bzw. schwächer formuliert, eine Inkonsequenz.
Das kann man bemäkeln, aber jeder Aufruf einer Funktion in einer Funktion erfolgt im window Kontext, von daher ist es OK.
Zitat Douglas Crockford (eine JavaScript-Koryphäe):
Du kennst dich aus ;-)
"In a simple function call, this is set to the Global Object (aka window), which is not very useful. The correct behavior should have been to preserve the current value of this, particularly when calling inner functions."
wie gesagt, da kann man sicher drüber steiten, aber vielleicht hat es auch einen Grund, der sich mir und dir (und Douglas) nicht erschliesst.
Aber es läßt sich ja leicht beheben, wie ich dir gezeigt hatte.
Der Aufruf "closure();" ist ein solcher simple function call, und "this" zeigt in diesem Fall immer auf das sog. globale Objekt, d.h. das window-Objekt im Browser-DOM.
Ja, wie alle Funktionen, die du Ohne Objekt aufrufst, aber dafür gibt es ja dann .call()
Struppi.