Dado el siguiente código, ¿qué debo esperar ver en la alerta?Alcance de la función anónima pasada como argumento de función
var a = 100;
function afunc(infunc){
a = 10;
infunc.call();
}
afunc(function(){alert(a)});
Mi idea inicial era que el navegador debe alertar 100 ya que la variable a = 100 estaría en posibilidades de la función anónima pasa como argumento a afunc. Pero esto supone que la función anónima en realidad está definida en el contexto global. Aparentemente, ese no es el caso ya que el navegador alerta 10. Entonces, ¿por qué a = 10 está por delante de a = 100 en la cadena de alcance?
Gracias!
Facepalm! Ahora me siento tonto. –
sí, es razón correcta –