Javascript Array.prototype方法会影响函数中的多个变量吗?

Javascript Array.prototype方法会影响函数中的多个变量吗?,javascript,prototype,Javascript,Prototype,我觉得我缺少了JavaScript的一些基本功能。任何帮助都将不胜感激 在下面的代码中,我的函数将数组作为参数。它将一个新变量newArr设置为等于输入变量 input=[1,2,3,4,1,3,4]; 功能测试(输入){ var newArr=输入; 新角拼接(0,1); 返回输入; }; 控制台日志(测试(输入))在javascript中,从另一个变量接收对象的变量不是副本,而是引用 在javascript中,从另一个变量接收对象的变量不是副本,而是引用 数组分配不会复制数组。newArr

我觉得我缺少了JavaScript的一些基本功能。任何帮助都将不胜感激

在下面的代码中,我的函数将数组作为参数。它将一个新变量
newArr
设置为等于
输入
变量

input=[1,2,3,4,1,3,4];
功能测试(输入){
var newArr=输入;
新角拼接(0,1);
返回输入;
};

控制台日志(测试(输入))在javascript中,从另一个变量接收对象的变量不是副本,而是引用


在javascript中,从另一个变量接收对象的变量不是副本,而是引用


数组分配不会复制数组。
newArr
input
都指向同一个对象。

数组分配不会复制数组。
newArr
input
都指向同一个对象。

看起来我忽略了一个事实,即我需要克隆数组,而不仅仅是将其分配给一个新变量

似乎有很多方法可以做到这一点,其中一种方法如下:

input=[1,2,3,4,1,3,4];
功能测试(输入){
var newArr=input.slice(0);//克隆数组
新角拼接(0,1);
返回输入;
};

控制台日志(测试(输入))看起来我忽略了一个事实,即我需要克隆数组,而不仅仅是将它分配给一个新变量

似乎有很多方法可以做到这一点,其中一种方法如下:

input=[1,2,3,4,1,3,4];
功能测试(输入){
var newArr=input.slice(0);//克隆数组
新角拼接(0,1);
返回输入;
};

控制台日志(测试(输入))我明白了。我错过了。非常感谢。我明白了。我错过了。非常感谢。