So che eval
e setTimeout
è possibile accettare una stringa come parametro (1 °) e so che è meglio non utilizzarlo. Sono solo curioso perché c'è una differenza:Differenza tra eval e setTimeout esegue il codice stringa
!function() {
var foo = 123;
eval("alert(foo)");
}();
!function() {
var foo = 123;
setTimeout("alert(foo)", 0);
}();
il primo avrebbe funzionato, e il secondo darà un errore: foo is not defined
Come sono eseguiti dietro la scena?
non va fuori campo prima che venga richiamato il callback setTimeout? –
Perché scherzare con cose malvagie ^^ Non usare nessuno di questi :) – Andreas
Un punto di vista correlato interessante [qui] (https://stackoverflow.com/q/3492015/465053). – RBT