Измените значение переменной, чтобы использовать ее в другой переменной
Я начинаю с 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);
}