javascript处理参数按值传递

时间:2014-11-20 01:41:26

标签: javascript

完全是新手问题。 所以我有一个数组,我把它传递给一个函数。如果函数以任何方式更改数组,则在函数返回后,实际上会更改数组。

当我使用整数参数执行相同操作时,调用前后的参数值是相同的。

这是一个例子。

function test2(inputValue) {
    inputValue += 5;
}


function test1() {
    var input = 1;
    input = test2(input);
    console.log('input: ' + input);
}

test1();

输入:1 所以参数的值没有变化。

不确定如何解释。

思想?

2 个答案:

答案 0 :(得分:1)

当您调用该函数时,如果参数是基本类型,则它会复制该参数。所以你改变的是副本。 如果参数是一个数组(或其他对象),它会生成引用的副本,当您进行更改时,它会通过转到地址(引用)来更改数组。所以数组中的值会发生变化。

答案 1 :(得分:0)

return inputValue;之后添加inputValue += 5;语句,以便函数返回值。

通过返回一个值,该函数将等于其输入加5,或者在这种情况下为6,并将传回该数字。