Sé que eval
y setTimeout
pueden aceptar una cadena como el (1er) parámetro, y sé que será mejor que no use esto. Tengo curiosidad por qué hay una diferencia:Diferencia entre eval y setTimeout ejecutar código de cadena
!function() {
var foo = 123;
eval("alert(foo)");
}();
!function() {
var foo = 123;
setTimeout("alert(foo)", 0);
}();
la primera quiere trabajar, y el segundo dará un error: foo is not defined
¿Cómo están ejecutados detrás de la escena?
¿se sale de alcance antes de llamar a la devolución de llamada setTimeout? –
¿Por qué meterse con cosas malvadas? ^^ No use ninguno de estos :) – Andreas
Un interesante punto de vista relacionado [aquí] (https://stackoverflow.com/q/3492015/465053). – RBT