function foo() {
var bar = 'no'
setInterval(function() { console.log(bar); }, 1000);
}
当我执行这段代码时,我得到了以下输出:no
,所以输出是正确的。但是当我执行下一段代码时,当我将函数bar
作为参数传递给那个匿名函数时,我不知道为什么输出是undefined
function foo() {
var bar = 'no'
setInterval(function(bar) { console.log(bar); }, 1000);
}
如果我将变量作为参数传递,为什么未定义?如果匿名函数内部也有变量调用bar
,我知道该变量将被内部函数值重写,但我无法理解这种行为