L'utilisation de timer setTimeout en JavaScript est généralement la suivante. Après avoir appelé startrotate, il entre dans un processus d'exécution régulière de rotateloop, comme indiqué dans le code suivant :
Copiez le code comme suit :
angle variable = 0 ;
fonction rotationboucle() {
si (angle < 360) {
angle++;
//utiliser l'angle
//......
setTimeout("rotateloop()", 100);
}
}
fonction startrotate() {
//faire quelque chose
//......
setTimeout("rotateloop()", 100);
}
Un problème avec ce code est qu'il génère un angle variable global, ce qui n'est évidemment pas une bonne pratique de programmation. Nous avons donc pensé à utiliser des fonctions en ligne et avons modifié le code comme suit :
Copiez le code comme suit :
fonction startrotate() {
angle variable = 0 ;
fonction rotationboucle() {
si (angle < 360) {
angle++;
//utiliser l'angle
//......
setTimeout("rotateloop()", 100);
}
}
//faire quelque chose
//......
setTimeout("rotateloop()", 100);
}
Après avoir effectué cette modification, j'ai constaté que JavaScript a signalé une erreur et que rotateloop n'a pas pu être trouvé. De toute évidence, setTimeout n'a pas trouvé la fonction intégrée locale de rotateloop. Ce problème peut être résolu avec une légère modification. Le code est le suivant :
Copiez le code comme suit :
fonction startrotate() {
angle variable = 0 ;
fonction rotationboucle() {
si (angle < 360) {
angle++;
//utiliser l'angle
//......
setTimeout(rotateloop, 100);
}
}
//faire quelque chose
//......
setTimeout(rotateloop, 100);
}
Changez simplement le premier paramètre de setTimeout en un objet fonction au lieu d'une chaîne.