Digamos que tiene una función simple que alerta a un mensaje:¿Por qué funciona este cierre?
function callMessage(msg){
alert(msg);
}
Ahora, cuando lo llamo como tal, no funciona. Tiros de error "oye no está definido"
function sayHi(){
var hey = "hi there"
setTimeout("callMessage(hey)", 1000);
}
sayHi();
Pero cuando lo llamo el interior de una función anónima que hace el trabajo:
function sayHi(){
var hey = "hi there"
setTimeout(function(){callMessage(hey);}, 1000);
}
sayHi();
¿Por qué es la variable "bueno" sólo es visible cuando lo puse dentro de una ¿función anónima?
lo haría también prueba esto; 'setTimeout (" var hey = 'hola allí'; callMessage (hey) ", 1000);' – mindandmedia
Si fuera usted, leería algo así como - http://www.digital-web.com/articles/scope_in_javascript/ –