我对下面为什么输出“ 1”感到困惑。
如果我使用var
在myFunc中声明a
,则应将a
的范围限制为该函数。
在匿名函数中(在setInterval调用中)调用“ a”是一个不同的函数,那么为什么在myFunc的范围内考虑呢?
是因为该函数是匿名的吗?我希望a
可以用于其他功能,除非使用了bind()
。
myFunc = function(){
var a = 1;
var int = setInterval(function () {
console.log(a);
}, 5);
}
答案 0 :(得分:0)
绑定到setInterval
的函数是一个闭包,当在其自己的作用域中未知的内容时,它将在外部作用域(在您的情况下为myFunc
范围中)