Maison > interface Web > js tutoriel > le corps du texte

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

Susan Sarandon
Libérer: 2024-11-03 07:52:02
original
543 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal