Maison  >  Article  >  interface Web  >  Comment puis-je transmettre des paramètres aux fonctions retardées avec setTimeout ?

Comment puis-je transmettre des paramètres aux fonctions retardées avec setTimeout ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 07:52:02534parcourir

How Can I Pass Parameters to Functions Delayed with 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn