js参数传递数组对象,修改此参数,会影响原数组吗

如题所述

会不会修改原数组需要看你的函数里面的方法改变没有改变原数组的数据,举个例子:

1,方法中改变了原数据的,会影响原数组

var a = [1,2,3];
function test(arr){
    arr[0] = 4;//直接改变原数组的第一个数据,影响原数组,故改变了原数组。
    console.log(arr);//[4,2,3];
}
a;//在没有调用test之前是[1,2,3]
test(a);//输出[4,2,3]
a;//test之后[4,2,3]

2,方法中没有影响原数据的,不会改变原数组

var a = [1,2,3];
function test(arr){
    arr = [4,5,6];//此处,arr直接赋予新值,和原数据没有关系,不会影响原数据
    console.log(arr);//输出[4,5,6]
}
a;//test之前[1,2,3]
test(a);//输出[4,5,6]
a;//test之后[1,2,3]没有影响原数据

以上个人见解,不到之处还请斧正。

温馨提示:答案为网友推荐,仅供参考