这是一个类似的例子
var global=0;
function somefunction()
{
global++;
}
var temp=global;
function somefunctiontwo()
{
var x=temp;
}
这里我得x = 0 我想要x = 1
如何将新指定的全局变量值分配给x
答案 0 :(得分:3)
使用对象作为全局变量;这将通过引用分配,而不是通过值'至于简单(数字)类型:
var global = { value: 0 };
var temp = global;
功能:
global.value++;
现在是:
temp.value == 1
答案 1 :(得分:0)
temp
和global
指的是两个不同的变量。分配到global
不会更改temp
中的值。
只需将var x=temp
更改为var x=global
即可。目前尚不清楚为什么需要一个中间变量。
答案 2 :(得分:0)
var global=0;
var temp;
function somefunction(){
global++;
}
function somefunctiontwo() {
var x=temp;
console.log(x);
}
somefunction();
temp=global;
somefunctiontwo();
这将满足您的期望。注意你如何/在何处调用这些功能。
答案 3 :(得分:0)
你的结构似乎有些偏差,不确定这是否是我们看不到的原因......请假设它是。可以有一个将temp值重新定义为global的函数。
function syncGlob(){
return temp = global;
}
返回temp也可以在创建x时调用它。
var x = syncGlob();
答案 4 :(得分:0)
您将temp的值设置为全局PRIOR到准备就绪 - 此时全局为0.如果在on ready处增加全局,则temp的值为0.
当你点击somefunction2并给x赋值temp时,temp的值为0,因为在temp启动时,global的值为0 NOT 1