Existe alguma boa razão para passar uma string para setTimeou
Todos sabemos que passar uma string parasetTimeout
(ousetInterval
) é mau, porque é executado no escopo global, tem problemas de desempenho, é potencialmente inseguro se você estiver injetando algum parâmetro, etc. Portanto, isso é definitivamente obsoleto:
setTimeout('doSomething(someVar)', 10000);
a favor disso:
setTimeout(function() {
doSomething(someVar);
}, 10000);
Minha pergunta é: pode haver um motivo para fazer o primeiro? É issosempr preferível? Se não for, por que é permitido?
O único cenário em que pensei é querer usar uma função ou variável que exista no escopo global, mas que foi substituída no escopo local. Isso me parece um design de código ruim, no entanto ...