我覆盖它后,Javascript变量返回原始值

时间:2012-12-22 06:36:25

标签: javascript jquery

  

可能重复:
  Setting local variable in a JavaScript callback function

我很难调试我的脚本,因为我不知道我的变量发生了什么。

我尝试使用'console.log'来跟踪发生的事情,但令我惊讶的是,我不知道为什么会发生这种情况。

情况就是这样:

我有这段javascript代码:

tmplReplaceContent : function(json, tmpl, target){ 
    var template = tmpl;
    var regex = new RegExp("some regex");
    ...
    if (!regex.test(tmpl)) {
        $.get(msi.vars.api_url + tmpl + '.tmpl', function(tmplOut){
            console.log("regex check passed!");
            template = tmplOut;
            console.log(template);
        });
    } else {
      console.log("failed regex check");
    }

    console.log(template);
...

首先console.log(template)产生我想要的结果

但第二个回到原来的值:

e.g。

tmpl = somevar; // that returns true on if statement
template = tmpl;

console.log(template) // 1st. will return value of somevar

您认为什么是补救措施,为什么我的代码会失败?

0 个答案:

没有答案