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

Existe-t-il des exceptions à la dépréciation des paramètres de chaîne dans setTimeout ?

Mary-Kate Olsen
Libérer: 2024-10-20 07:37:29
original
963 Les gens l'ont consulté

Are There Exceptions to the Deprecation of String Parameters in setTimeout?

La dépréciation du passage de chaînes à setTimeout : y a-t-il déjà une exception ?

Malgré le consensus largement répandu selon lequel le passage de chaînes à setTimeout n'est pas souhaitable, il peut y avoir des cas où cela la pratique est divertissante. Cela soulève la question : existe-t-il des raisons légitimes de violer cette convention ?

La raison conventionnelle du rejet des paramètres de chaîne est qu'ils s'exécutent dans une portée globale, ce qui entraîne des problèmes de performances et des vulnérabilités de sécurité potentielles. La syntaxe moderne évite cette approche en faveur du passage de fonctions comme arguments à setTimeout :

setTimeout(function() {
    doSomething(someVar);
}, 10000);
Copier après la connexion

Considérez le scénario dans lequel une fonction ou une variable existe globalement mais est remplacée localement. Le développeur peut envisager d'utiliser la syntaxe obsolète pour accéder à l'instance globale :

setTimeout('doSomething(someVar)', 10000);
Copier après la connexion

Cependant, l'accès aux variables globales via l'objet window (par exemple, window.globalVar) élimine le besoin de cette exception.

L'autorisation des paramètres de chaîne dans setTimeout et setInterval est probablement due à leur préséance historique. Initialement, ces fonctions n'acceptaient que les chaînes contenant du code à exécuter. L’introduction des objets Function comme arguments valides est venue plus tard. Interdire rétroactivement les paramètres de chaîne briserait le code existant.

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
Derniers articles par auteur
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!