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!