完全是新手问题。 所以我有一个数组,我把它传递给一个函数。如果函数以任何方式更改数组,则在函数返回后,实际上会更改数组。
当我使用整数参数执行相同操作时,调用前后的参数值是相同的。
这是一个例子。
function test2(inputValue) {
inputValue += 5;
}
function test1() {
var input = 1;
input = test2(input);
console.log('input: ' + input);
}
test1();
输入:1 所以参数的值没有变化。
不确定如何解释。
思想?
答案 0 :(得分:1)
当您调用该函数时,如果参数是基本类型,则它会复制该参数。所以你改变的是副本。 如果参数是一个数组(或其他对象),它会生成引用的副本,当您进行更改时,它会通过转到地址(引用)来更改数组。所以数组中的值会发生变化。
答案 1 :(得分:0)
在return inputValue;
之后添加inputValue += 5;
语句,以便函数返回值。
通过返回一个值,该函数将等于其输入加5,或者在这种情况下为6,并将传回该数字。