【问题标题】:javascript variable scopejavascript变量范围
【发布时间】:2011-05-10 16:57:33
【问题描述】:

我有以下代码,

它正在运行,但是控制台中的输出是

即时:真实
瞬间2:假

因为变量没有在全局范围内被覆盖。 如何访问全局范围内的变量?

var instant = false;
$('document').ready(function(){
  chrome.extension.sendRequest({
    action: "getStorage",
    key: "instant"
  }, function(response) {
    instant = true;
    console.log('instant: ', instant); 
  });
  console.log('instant2: ', instant);
});

【问题讨论】:

    标签: javascript jquery variables scope


    【解决方案1】:

    window.instant 应该会为您提供全局变量的值。

    【讨论】:

    • 不是在instant = true 行执行之后。如果前面没有var,那将覆盖全局变量。
    【解决方案2】:

    它正在被覆盖,但稍后。你的 function(response) 直到外部函数返回后才会被执行。

    【讨论】:

    • 这取决于你想要做什么。如果你想要一个本地版本的 Instant,用var 声明它,即var instant = true;
    • 其实我只是想在这个完成后在全局范围内使用变量。
    • 我目前正在做的修复它是将所有其他代码移动到回调中。但它很乱。
    猜你喜欢
    • 2020-02-07
    • 2012-12-23
    • 2011-07-07
    • 2011-03-03
    • 2013-01-16
    • 2011-05-26
    相关资源
    最近更新 更多