通过参数更新数字var的函数不能正确更新数字var

时间:2014-12-24 20:32:02

标签: javascript function parameters arguments parameter-passing

所以我有这样的代码就像这样

var number = 0;

function addnumber(numbertype){
	numbertype = numbertype +50;
}

function numberupdate() {
	document.getElementById('adiv').innerHTML = number;
}

某处,我打电话给

onClick="addnumber(number);"

现在,如果我通过警报检查号码的值,它会正确显示。但是这个数字只有50次,并且在我点击的次数越多越多,并且即使在addnumber()函数中调用的警报将正确地计算数字,当在该函数之外检查时,它也不会更新数字的值。

我确定我错过了一些简单的事情。

3 个答案:

答案 0 :(得分:0)

在你的addnumber函数中,你传入的变量增加了50,而不是(我假设)数字。

您可以将其更改为:

function addnumber(){
    number += 50;
}

答案 1 :(得分:0)

您对数字和数字类型变量感到困惑。

var number = 0;
function addnumber(numbertype){
    number = number + numbertype +50;
}

function numberupdate() {
    document.getElementById('adiv').innerHTML = number;
}

答案 2 :(得分:0)

javascript函数的参数要么通过值'传递。如果是原始的,或者通过参考'如果是对象。您的var'编号'是一个原始的。在这种情况下,副本由原始值组成,并作为参数传递。因此,Addnumber会将数字副本添加50,而不是数字本身。 如果要以这种方式更改变量的值,请使用对象,然后它将按照您最初的预期工作:



var number={value:0};

function addnumber(numbertype){
	numbertype.value = numbertype.value +50;
}