更改变量值以在另一个变量中使用它

时间:2014-01-08 13:58:42

标签: javascript onclick global-variables

我开始使用javascript而且我已经在这场斗争中度过了很多天,在我内心我觉得这很愚蠢而且我很接近解决它,但我看不到它,所以我需要你的帮助。我想用onclick事件更改变量值,我可以这样做,但是当我想在另一个变量中的操作中使用新值时,它不起作用。

这是我想要做的一个例子:

  <script type=text/javascript>
  a="";
  function setvalue(){
  a=1;
  return a;
  }

  x= "hola"+a;
  function show(){
  alert(x);
  }
  </script>

在html中我有:

<input type="button" onclick="setvalue()" value="1" />
<input type="button" onclick="show()" value="2" />

当我使用alert(a)时,它完全有效但是当使用x变量时它不起作用

2 个答案:

答案 0 :(得分:2)

您过早地定义x。使用当前值xshow中定义a

var a = "";
function setvalue(){
    a = 1;
    return a;
}

function show(){
    var x = "hola" + a;
    alert(x);
}

答案 1 :(得分:0)

是的,我同意评论:“你只是在当前时刻获得了你构建字符串的价值。”

关于正在发生的事情的补充说明:

在Javascript中,字符串是不可变的。因此,第一次将“a”的值分配给“x”时,“a”(该时刻的值)的副本将分配给“x”。无论后来的'a'是否发生变化,因为你没有指定'a'作为参考。

如果您想通过引用分配,则应使用对象。

“对象通过引用传递。它们永远不会被复制。”

样品:

a={name:"cat"}; 
function setvalue(){
    a.name= "dog";
    return a.name;
}

x = a;
function show(){
    alert(x.name);
}

JSFiddle:http://jsfiddle.net/amontellano/xkZr8/1/

我希望它有所帮助。