javascript - 将回调的范围设置为执行的位置?

标签 javascript

我试图理解为什么这个警报为真?以及如何在不将参数传递给回调函数的情况下发出 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/

相关文章:

javascript - AngularJS 中可重用的弹出解决方案

javascript - 当 JQuery 按钮获得焦点并按下空格键时,如何防止页面滚动

javascript - Angular ,函数回调的正确方法

javascript - Rails 4 中的 js/css/images 插件放在哪里?

javascript - 限制 HTML 5 中的日期范围

javascript - 计算对象数组上的所有值 - javascript

javascript - 如何 chop 结果标题?

javascript - 如何让用户只输入数字和字母?

javascript - 从页面获取链接并将其显示在表格中?

javascript - 使用bind(this)时如何访问$(this)?