Quand le passage d'une chaîne à setTimeout est-il acceptable ?
Passer une chaîne à setTimeout ou setInterval est généralement déconseillé en raison de ses inconvénients, notamment l'exécution dans la portée mondiale, les problèmes de performances et les risques de sécurité potentiels. Cependant, la question se pose : existe-t-il des raisons légitimes de recourir à cette pratique déconseillée ?
Global Scope Access
Le seul scénario potentiel identifié est celui de l'accès à une fonction ou variable existant dans la portée globale qui a été remplacée localement. Cependant, cela suggère une mauvaise conception du code, car cela introduit un conflit entre les identifiants locaux et globaux.
Origines historiques et prise en charge héritée
La syntaxe obsolète est probablement autorisée pour des raisons historiques. . Initialement, setTimeout et setInterval n'acceptaient qu'une chaîne de code comme premier argument. La prise en charge de la transmission d'une référence d'objet de fonction a été introduite ultérieurement.
Par conséquent, le maintien de la compatibilité descendante pour le code existant, les navigateurs existants et les appareils IoT qui peuvent s'appuyer sur des versions JavaScript plus anciennes nécessite de préserver la syntaxe basée sur les chaînes. Néanmoins, il est fortement recommandé d'adopter la syntaxe préférable en utilisant une expression de fonction pour le développement moderne.
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!