JavaScript 处理参数按值传递

javascript handling parameters pass by value

本文关键字:按值传递 参数 处理 JavaScript      更新时间:2023-09-26

完全新手的问题。所以我有一个数组,我把它传递给一个函数。如果函数无论如何都更改了数组,则在函数返回后,数组实际上已更改。

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

下面是一个示例。

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

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

输入 : 1因此,参数的值保持不变。

不知道如何解释。

思潮?

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

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

通过返回一个值,该函数将等效于其输入加 5,在本例中为 6,并将传回该数字。