function test1(){
var n = 10;
setTimeout("alert(n)", 500);
}
function test2(){
var n = 10;
setTimeout(function(){alert(n)}, 500);
}
test1();
test2();
上面的代码中,执行test1会报错,提示n没有定义,执行test2会把10打印出来。
上面两个函数区别在哪里?
test1中报错n没有定义很正常,为什么test2可以输出n?