"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > É sempre necessário passar strings para setTimeout?

É sempre necessário passar strings para setTimeout?

Publicado em 2024-11-08
Navegar:545

Is It Ever Necessary to Pass Strings to setTimeout?

Passando strings para setTimeout: uma questão de necessidade

Muitos desenvolvedores desaprovam a prática de passar strings para setTimeout devido a preocupações de desempenho, riscos potenciais de segurança e seu uso obsoleto status. No entanto, pode haver raros cenários em que essa sintaxe pode ser benéfica.

O Debate sobre Depreciação

A sintaxe tradicional para setTimeout e setInterval envolvia passar uma string que representava o código a ser executado. Por exemplo:

setTimeout('doSomething(someVar)', 10000);

No entanto, o JavaScript moderno promove o uso de referências de função:

setTimeout(function() {
    doSomething(someVar);
}, 10000);

O argumento para strings

O debate surge ao considerar se há alguma razão válida para se desviar da sintaxe recomendada. Um possível argumento poderia ser o desejo de acessar uma função ou variável que reside no escopo global, mas pode ter sido substituída localmente.

The Case Against Strings

Apesar desse raciocínio, o uso de strings em setTimeout é fortemente desencorajado. Variáveis ​​globais ainda podem ser acessadas através das propriedades do objeto janela. Por exemplo:

setTimeout(window.doSomething(someVar), 10000);

Tolerância histórica

A permissão de strings como argumentos para setTimeout e setInterval é provável enraizada em fatores históricos. As versões anteriores do JavaScript suportavam apenas strings. Adicionar a capacidade de passar referências de função foi uma adição posterior. Para garantir a compatibilidade com versões anteriores, os navegadores ainda permitem a sintaxe de string, mesmo que ela esteja obsoleta.

Conclusão

Embora seja tecnicamente possível passar strings para setTimeout em certos casos, a prática geralmente não é recomendado devido à disponibilidade de abordagens alternativas. O uso de referências de função proporciona melhor desempenho, aumenta a segurança e segue as diretrizes de código modernas. Portanto, a sintaxe de string obsoleta deve ser evitada para maior clareza, capacidade de manutenção e qualidade geral do código.

Declaração de lançamento Este artigo foi reimpresso em: 1729380675 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3