我的代碼將數字向上或向下遞增1.問題是「testNum」是一個全局變量,它應該反映向上或向下的增量,但是當我檢查在控制檯中的「testNum」值始終爲20.我將「testNum」傳遞給我的函數並返回它。爲什麼它不反映增量?將全局變量傳遞給函數 - 全局變量在函數運行後不更新
小提琴:http://jsfiddle.net/FnUXw/1/
<input type="button" id="btnDown" value="-">
<span id="amountDiv">amount div</span>
<input type="button" id="btnUp" value="+">
<script>
var testNum = 20;
amountDiv.innerHTML = testNum;
function makeButtonIncrement(button, upDown, displayDiv, variable) {
function changeValue() {
if (upDown == "up") {
variable++;
}
if (upDown == "down") {
variable--;
}
displayDiv.innerHTML = variable;
}
button.onclick = changeValue;
return variable;
}
makeButtonIncrement(document.getElementById('btnDown'), "down", document.getElementById('amountDiv'), testNum);
makeButtonIncrement(document.getElementById('btnUp'), "up", document.getElementById('amountDiv'), testNum);
</script>
[JavaScript通過值傳遞基元,而不是通過引用](http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-語言)。 – DCoder 2013-02-23 21:15:14
你爲什麼要傳遞變量,如果它是一個全局變量 – 2013-02-23 21:16:45
@ParvSharma我想在整個我的代碼中使用這個函數和不同的按鈕和變量。 – user1822824 2013-02-23 21:18:52