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

Les appels de fonctions basés sur des chaînes avec setTimeout peuvent-ils être justifiés ?

DDD
Libérer: 2024-10-20 07:42:02
original
783 Les gens l'ont consulté

Can String-Based Function Calls with setTimeout Be Justified?

Passer une chaîne à setTimeout : raisons d'évitement et exception

Passer une chaîne à setTimeout ou à son homologue setInterval est généralement mal vu devido des problèmes d'exécution à l'échelle mondiale, des problèmes de performances potentiels et des vulnérabilités de sécurité. L'alternative recommandée est d'utiliser une fonction anonyme comme premier argument.

Cependant, il peut y avoir une grâce salvatrice dans certaines situations. Si le programmeur a l'intention d'accéder à une fonction ou à une variable qui existe dans la portée globale mais qui a été remplacée localement, il peut envisager d'utiliser la syntaxe de chaîne obsolète. Néanmoins, cette approche est considérée comme une mauvaise pratique de programmation en raison du potentiel d'observation des variables.

Dans la plupart des cas, il est possible d'accéder aux variables globales en tant que propriétés de l'objet fenêtre (par exemple, window.globalVar), ce qui le rend inutile de recourir à des appels de fonctions basés sur des chaînes. Par conséquent, il est très peu probable de rencontrer un scénario dans lequel l'utilisation d'une chaîne comme premier argument pour setTimeout ou setInterval serait véritablement bénéfique.

Historiquement, la seule disponibilité d'une chaîne de code comme argument pour ces fonctions provenait de Limites de JavaScript 1.0. L'introduction d'une référence d'objet Function en tant qu'argument n'a eu lieu qu'avec JavaScript 1.2. Le maintien de la compatibilité avec les anciens navigateurs et scripts empêche les développeurs d'éliminer complètement les appels basés sur des chaînes. En comprenant à la fois les mises en garde et les rares exceptions, les programmeurs peuvent prendre des décisions éclairées lors de l'écriture de code impliquant setTimeout et setInterval.

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
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!