Die Verwendung des Timers setTimeout in JavaScript ist im Allgemeinen wie folgt. Nach dem Aufruf von beginrotate wird ein Prozess zur regelmäßigen Ausführung von Rotateloop gestartet, wie im folgenden Code gezeigt:
Kopieren Sie den Codecode wie folgt:
var Winkel = 0;
Funktion rotateloop() {
if (Winkel < 360) {
Winkel++;
//Winkel verwenden
//............
setTimeout("rotateloop()", 100);
}
}
Funktion beginrotate() {
//etwas tun
//............
setTimeout("rotateloop()", 100);
}
Ein Problem bei diesem Code besteht darin, dass er einen globalen variablen Winkel generiert, was offensichtlich keine gute Programmierpraxis ist. Deshalb haben wir über die Verwendung von Inline-Funktionen nachgedacht und den Code wie folgt geändert:
Kopieren Sie den Codecode wie folgt:
Funktion beginrotate() {
var Winkel = 0;
Funktion rotateloop() {
if (Winkel < 360) {
Winkel++;
//Winkel verwenden
//............
setTimeout("rotateloop()", 100);
}
}
//etwas tun
//............
setTimeout("rotateloop()", 100);
}
Nachdem ich diese Änderung vorgenommen hatte, stellte ich fest, dass JavaScript einen Fehler meldete und „Rotateloop“ nicht gefunden werden konnte. Offensichtlich konnte setTimeout die lokal eingebettete Funktion von „Rotateloop“ nicht finden. Der Code lautet wie folgt:
Kopieren Sie den Codecode wie folgt:
Funktion beginrotate() {
var Winkel = 0;
Funktion rotierenloop() {
if (Winkel < 360) {
Winkel++;
//Winkel verwenden
//............
setTimeout(rotateloop, 100);
}
}
//etwas tun
//............
setTimeout(rotateloop, 100);
}
Ändern Sie einfach den ersten Parameter von setTimeout in ein Funktionsobjekt statt in einen String.