Maison >interface Web >js tutoriel >Comment l'utilisation de setTimeout() avec et sans guillemets et parenthèses affecte-t-elle sa fonctionnalité ?

Comment l'utilisation de setTimeout() avec et sans guillemets et parenthèses affecte-t-elle sa fonctionnalité ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-13 00:56:02496parcourir

How does using setTimeout() with and without quotes and parentheses affect its functionality?

Utilisation de setTimeout() avec et sans guillemets et parenthèses

Introduction

setTimeout de JavaScript( ) la fonction permet aux développeurs de planifier l'exécution de fonctions après un délai spécifié. Cependant, il existe différentes manières d'utiliser setTimeout(), chacune présentant des différences subtiles. Cet article vise à clarifier les distinctions entre l'utilisation de parenthèses, de guillemets ou les deux lors de l'appel de setTimeout().

Passer des références de fonction

L'argument principal de setTimeout() doit être une référence à la fonction à exécuter après le délai. Cette référence peut être :

  • Parenthèses : setTimeout(function() {...}, 3000);
  • Pas de guillemets, pas de parenthèses : setTimeout(alertMsg, 3000);
  • Citations uniquement : Ceci n'est pas recommandé.

Passer des arguments

Pour transmettre des arguments à la fonction appelée, n’utilisez pas la méthode des guillemets et parenthèses. Utilisez plutôt ce qui suit :

  • Incorporez l'appel de fonction dans la fonction de rappel : setTimeout(function(){ foo(arg1, arg2); }, 1000);
  • Utilisez le méthode non compatible avec tous les navigateurs : setTimeout(foo, 2000, arg1, arg2);

Contexte de rappel

Par défaut, le contexte du rappel est l'objet global (fenêtre). Pour le modifier :

  • Utilisez bind: setTimeout(function(){ this === YOUR_CONTEXT; }.bind(YOUR_CONTEXT), 2000);

Sécurité

Passer une chaîne à setTimeout() n'est pas sécurisé et déconseillé. Cela rend la fonction sujette à l'exécution de scripts arbitraires.

Conclusion

Bien que l'utilisation de setTimeout() avec des guillemets soit techniquement possible, elle n'est pas recommandée pour des raisons de sécurité et de performances. Pour transmettre une fonction et ses arguments de manière sûre et efficace, utilisez les méthodes parenthèses ou guillemets uniquement, selon le cas. De plus, soyez conscient du contexte de rappel et envisagez d'utiliser bind pour le contrôler.

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