De nombreux développeurs désapprouvent la pratique consistant à transmettre des chaînes à setTimeout en raison de problèmes de performances, de risques de sécurité potentiels et de son caractère obsolète. statut. Cependant, il peut y avoir de rares scénarios où cette syntaxe pourrait être bénéfique.
La syntaxe traditionnelle pour setTimeout et setInterval impliquait de transmettre une chaîne qui représentait le code à exécuter. Par exemple :
setTimeout('doSomething(someVar)', 10000);
Cependant, le JavaScript moderne favorise l'utilisation de références de fonction à la place :
setTimeout(function() {
doSomething(someVar);
}, 10000);
Le débat surgit lorsqu'il s'agit de déterminer s'il existe des raisons valables de s'écarter de la syntaxe recommandée. Un argument possible pourrait être le désir d'accéder à une fonction ou à une variable qui réside dans la portée globale mais qui aurait pu être remplacée localement.
Malgré cette justification, l'utilisation de chaînes dans setTimeout est fortement déconseillé. Les variables globales sont toujours accessibles via les propriétés de l'objet fenêtre. Par exemple :
setTimeout(window.doSomething(someVar), 10000);
L'autorisation de chaînes comme arguments pour setTimeout et setInterval est probable ancrée dans des facteurs historiques. Les premières versions de JavaScript ne prenaient en charge que les chaînes. L'ajout de la possibilité de transmettre des références de fonction a été un ajout ultérieur. Pour garantir la compatibilité ascendante, les navigateurs autorisent toujours la syntaxe de chaîne, même si elle est obsolète.
Bien qu'il soit techniquement possible de transmettre des chaînes à setTimeout dans certains cas, cette pratique n'est généralement pas recommandé en raison de la disponibilité d’approches alternatives. L'utilisation de références de fonctions offre des performances améliorées, renforce la sécurité et respecte les directives de code modernes. Par conséquent, la syntaxe de chaîne obsolète doit être évitée pour des raisons de clarté, de maintenabilité et de qualité globale du code.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3