Hallo,
Nach meinem Verständnis sind Funktionen in JavaScript immer global
Das ist falsch, Funktionen können lokale Variablen sein und eine Funktionsdeklaration in einer anderen erzeugt nichts anderes als eine lokale Variable.
function bla () {}
ist immer identisch mit
var bla = function () {...};
erzeugt also im globalen Kontext eine globale Variable (= window-Methode), aber im Funktionskontext eine lokale Variable.
Nach meinem Wissen sind "private" Funktionen in JavaScript Methoden eines existierenden Objekts, nur beim window-Objekt kann man anstatt z.B.
window.alert()
auch einfach nuralert()
schreiben.
Dass man alert() statt window.alert() schreiben kann, hängt einfach mit der sog. Scope Chain zusammen. Also die Reihenfolge, die zur Auflösung eines Bezeichners abgearbeitet wird. Wenn keine lokale Variable mit dem genannten Bezeichner gefunden wird, wird letztlich beim globalen Objekt nachgeschaut, das ist nunmal window.
Du musst stattdessen das Objekt, dessen Methode Du willst, explizit aufrufen:
window.setTimeout("meinObjekt.fSlideAufZu(obj)", xyz)
Das geht davon aus, dass eine globale Variable namens meinObjekt existiert. Das will man eigentlich nicht.
Mathias