Hallo liebe tutorials.de Freunde,
ich möchte mittels der setTimeout() Funktion eine Funktion zu einem späteren Zeitpunkt ausführen. setTimeout() und die auszuführenden Funktion befinden sich in einem nicht globalen Geltungsbereich. Soll heißen es ist eine Funktion in einer Funktion, sowas wie eine Methode eines Objektes.
Also hab ich folgendes probiert:
Funktioniert aber leider nicht.
Dann wurde mir gesagt ich solle es doch so machen, was funktioniert:
Warum muss ich dort eine Funktion um die eigene Funktion basteln?
Okay wäre das gelöst. Aber damit sich Werte nicht überschreiben muss ich umbedingt die globale Variable wegkriegen. Wie mache ich das?
Also hab ich folgendes probiert (einfach globale Variable entfernt und lokal definiert):
Aber das geht nicht... ich komme aus der Java Welt und tue mich gerade sehr schwer das zu verstehen. Auch verstehe ich nicht warum ich extra das Funktions-Konstrukt um die aufruf-Funktion legen muss und war ich das this-Objekt nur mit einer globalen Variable benutzen kann. :-( Ich hoffe Ihr versteht mein Problem - falls nicht erklär ichs gerne anders
ich möchte mittels der setTimeout() Funktion eine Funktion zu einem späteren Zeitpunkt ausführen. setTimeout() und die auszuführenden Funktion befinden sich in einem nicht globalen Geltungsbereich. Soll heißen es ist eine Funktion in einer Funktion, sowas wie eine Methode eines Objektes.
Also hab ich folgendes probiert:
Code:
[...]
// nicht globaler Bereich
setTimeout(this.aufruf(50), 2000);
[...]
Dann wurde mir gesagt ich solle es doch so machen, was funktioniert:
Code:
// Globale Variable
var that = none;
[...]
// nicht globaler Bereich
that = this;
setTimeout(function(){that.aufruf(50);}, 2000);
[...]
Okay wäre das gelöst. Aber damit sich Werte nicht überschreiben muss ich umbedingt die globale Variable wegkriegen. Wie mache ich das?
Also hab ich folgendes probiert (einfach globale Variable entfernt und lokal definiert):
Code:
[...]
// nicht globaler Bereich
// Lokale Variable
var that = this;
setTimeout(function(){that.aufruf(50);}, 2000);
[...]
Aber das geht nicht... ich komme aus der Java Welt und tue mich gerade sehr schwer das zu verstehen. Auch verstehe ich nicht warum ich extra das Funktions-Konstrukt um die aufruf-Funktion legen muss und war ich das this-Objekt nur mit einer globalen Variable benutzen kann. :-( Ich hoffe Ihr versteht mein Problem - falls nicht erklär ichs gerne anders

Zuletzt bearbeitet: