Javascript 全局变量不会在第二个变量中更新

Javascript 全局变量不会在第二个变量中更新,javascript,scope,Javascript,Scope,当我调用foo2时,全局变量divFoo在我调用它时不会更新 var foo = 0; var divFoo = "<div id='"+foo+"'>" var foo2 = function() { foo++ } var foo=0; var divFoo=“” var foo2=函数(){ 福++ } 我看到了与这个问题相关的其他问题,我觉得这些问题并没有完全回答为什么会发生这种情况divFoo显示div id='0'。如何使divFoo与foo一起计数?当您更新

当我调用
foo2
时,全局变量
divFoo
在我调用它时不会更新

var foo = 0;
var divFoo = "<div id='"+foo+"'>"
var foo2 = function() {
    foo++
}
var foo=0;
var divFoo=“”
var foo2=函数(){
福++
}

我看到了与这个问题相关的其他问题,我觉得这些问题并没有完全回答为什么会发生这种情况<当
foo
计数时,code>divFoo显示div id='0'。如何使divFoo与foo一起计数?

当您更新
foo
时,需要更新
divFoo
。它不倾听变化,它是静态的

像这样:

var foo = 0;
var divFoo;
var foo2 = function() {
    foo++;
    divFoo = "<div id='"+foo+"'>";
}
var foo=0;
var divFoo;
var foo2=函数(){
foo++;
divFoo=“”;
}

当您更新
foo
时,需要更新
divFoo
。它不倾听变化,它是静态的

像这样:

var foo = 0;
var divFoo;
var foo2 = function() {
    foo++;
    divFoo = "<div id='"+foo+"'>";
}
var foo=0;
var divFoo;
var foo2=函数(){
foo++;
divFoo=“”;
}

这与范围无关
“”
创建一个新字符串,该字符串与
foo
变量没有任何链接。如果要更改
divFoo
,则需要将
divFoo=”“
放入
foo2()
函数体中。或者不使用
divFoo
变量,而是创建一个返回
的函数
divFoo()
。好的,我假设它会实时更新它。谢谢如果您希望这种情况“自动”发生,请查看其中一个“反应式”框架。这与范围无关
“”
创建一个新字符串,该字符串与
foo
变量没有任何链接。如果要更改
divFoo
,则需要将
divFoo=”“
放入
foo2()
函数体中。或者不使用
divFoo
变量,而是创建一个返回
的函数
divFoo()
。好的,我假设它会实时更新它。谢谢如果你想让这种情况“自动”发生,请查看其中一个“反应式”框架。或者,如果OP想保存一行,他们可以将其放入
foo2
divFoo=“”
@BryndenBielefeld哦,绝对!我只是想说清楚就这些。或者如果OP想要保存一行,他们可以把它放在
foo2
divFoo=“”
@BryndenBielefeld哦,绝对可以!我只是想弄清楚,仅此而已。