Maison > interface Web > js tutoriel > Pourquoi `setTimeout(alertMsg, 3000)` est-il préféré à `setTimeout('alertMsg()', 3000)` ?

Pourquoi `setTimeout(alertMsg, 3000)` est-il préféré à `setTimeout('alertMsg()', 3000)` ?

Linda Hamilton
Libérer: 2024-11-22 08:39:14
original
952 Les gens l'ont consulté

Why is `setTimeout(alertMsg, 3000)` preferred over `setTimeout(

Différences entre l'utilisation de setTimeout avec des guillemets et des parenthèses

Lors de l'utilisation de setTimeout, vous pouvez appeler la fonction directement sans guillemets ni parenthèses, ou vous pouvez mettre le nom de la fonction entre guillemets avec des parenthèses. Voici la répartition :

Avec parenthèses :

setTimeout("alertMsg()", 3000);
Copier après la connexion

Dans ce cas, "alertMsg()" est traité comme une chaîne et setTimeout exécutera cette chaîne comme un scénario. Cette approche n'est pas recommandée car elle peut conduire à un comportement inattendu.

Sans guillemets ni parenthèses :

setTimeout(alertMsg, 3000);
Copier après la connexion

C'est la méthode préférée pour passer une référence de fonction à setTimeout. Il transmet directement alertMsg, qui est supposé être une fonction.

Avec guillemets uniquement :

setTimeout("alertMsg", 3000);
Copier après la connexion

Il s'agit d'un alias pour l'exemple précédent, mais c'est non recommandé. Cela implique que vous transmettez une chaîne à setTimeout, ce qui peut être trompeur.

Considérations supplémentaires pour setTimeout

  • Référence de la fonction Pass : Transmettez toujours une fonction référence ou fonction anonyme comme premier argument de setTimeout.
  • Pass arguments : Pour transmettre des arguments à la fonction, utilisez un rappel ou la méthode la moins compatible avec tous les navigateurs pour les inclure comme arguments à setTimeout.
  • Contexte de rappel : Par défaut, le le contexte du rappel est la fenêtre de l'objet global. Vous pouvez le modifier en utilisant bind.
  • Sécurité : Évitez de transmettre des chaînes à setTimeout car il peut exécuter des scripts arbitraires.

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