我试图理解为什么这个警报为真?以及如何在不将参数传递给回调函数的情况下发出 false 警报(如果可能)?
var a = true;
function foo(callback){
var a = false;
callback();
}
function bar(){
alert(a);
}
foo(bar); // Alerts true
最佳答案
由于您在说 a = false
时使用了 var
,因此您创建了一个新的本地范围的 a
。
如果您想在更广泛的范围内修改现有变量,请删除 var
。
关于javascript - 将回调的范围设置为执行的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6713536/