Javascript 如何更改在不同对象中复制的JSON的引用

Javascript 如何更改在不同对象中复制的JSON的引用,javascript,json,Javascript,Json,在上述函数中,我创建了一个对象“a”,并创建了一个数组“myArray”。现在我在“b”中复制该数组并修改数组“b”。但为什么它要更改a.myArray以及如何避免此情况?,因为您分配了该数组的引用。因此,您实际上引用的是具有不同变量名的同一数组 如果要分离阵列 function myFunction() { var a = {}; a.myArray = ["Saab", "Volvo", "BMW"]; var b=a.myArray; b.push("Chevy"); alert(a.my

在上述函数中,我创建了一个对象“a”,并创建了一个数组“myArray”。现在我在“b”中复制该数组并修改数组“b”。但为什么它要更改a.myArray以及如何避免此情况?

,因为您分配了该数组的引用。因此,您实际上引用的是具有不同变量名的同一数组

如果要分离阵列

function myFunction() {
var a = {};
a.myArray = ["Saab", "Volvo", "BMW"];
var b=a.myArray;
b.push("Chevy");
alert(a.myArray);}
这将为您提供一个与初始数组值相同的新数组

slice()方法将数组部分的浅层副本返回到从开始到结束(不包括结束)选择的新数组对象中。原始数组将不会被修改


因为您正在将对a.myArray的引用复制到b.myArray中。您不是从.myArray创建新数组。
var b = a.slice();