Измените значение переменной, чтобы использовать ее в другой переменной

Я начинаю с 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 ответа

Решение

Да, я согласен с комментарием: "Вы просто получаете значение a в тот момент, когда вы строите строку".

Дополнительные заметки о происходящем:

В Javascript строки неизменяемы. Итак, когда вы в первый раз присваиваете значение "а" "х", копия "а" (значение в тот момент) присваивается "х". Неважно, изменится ли позже "а", потому что вы не назначаете "а" в качестве ссылки.

Если вы хотите назначить по ссылке, вы должны использовать объект.

"Объекты передаются по ссылке. Они никогда не копируются".

Образец:

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/

Я надеюсь, что это помогает.

Вы определяете x слишком рано. определять x в show с текущим значением a,

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

function show(){
    var x = "hola" + a;
    alert(x);
}
Другие вопросы по тегам