Maison > Article > interface Web > Comment puis-je transmettre des paramètres aux fonctions retardées avec setTimeout ?
Retarder l'exécution du script JavaScript avec setTimeout
À l'aide de la méthode setTimeout de JavaScript, vous pouvez exécuter un script après un délai spécifié. Contrairement à delay() ou wait() de jQuery, setTimeout prend directement une fonction de rappel comme argument et définit un délai en millisecondes.
Exécution asynchrone avec setTimeout
Lorsque vous transmettez une fonction comme argument à setTimeout, son exécution est programmée après le délai spécifié. Ce comportement asynchrone garantit que l'exécution du script n'est pas bloquée, permettant ainsi à d'autres parties du programme de continuer.
Passer des paramètres aux fonctions retardées
Si vous devez transmettre des paramètres à la fonction retardée, vous pouvez utiliser soit une fonction nommée, soit une fonction anonyme. Cependant, soyez conscient des problèmes de portée variable lors de l'utilisation de fonctions anonymes.
Pour garantir que les paramètres passés dans le présent sont conservés dans la portée de la fonction retardée, créez une fonction qui renvoie une nouvelle fonction acceptant les paramètres souhaités. Cela encapsule les valeurs des paramètres et permet à la fonction retardée d'y accéder plus tard.
Exemple avec portée variable
<code class="js">var a = "world"; setTimeout(alert("Hello " + a), 2000); // Calls alert immediately</code>
Encapsulation de paramètres avec une fonction anonyme
<code class="js">var a = "world"; setTimeout(function() { alert("Hello " + a); }, 2000); // Calls alert after 2 seconds with 'Hello world'</code>
Encapsulation de paramètres avec une fonction qui renvoie une fonction
<code class="js">function callback(param) { return function() { alert("Hello " + param); }; } var a = "world"; setTimeout(callback(a), 2000); // Calls alert after 2 seconds with 'Hello world'</code>
Cela vous permet de transmettre des paramètres à des fonctions retardées et garantit qu'elles conservent leur valeurs correctes malgré les modifications apportées à la portée de la variable entre-temps.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!