function myFunction() {
var a = {};
a.myArray = ["Saab", "Volvo", "BMW"];
var b=a.myArray;
b.push("Chevy");
alert(a.myArray);}
在上面这个函数中,我创建了一个对象" a"并创建了一个数组" myArray"。现在我在" b"中复制该数组。并修改数组" b"。但为什么要改变a.myArray以及如何避免这种情况?
答案 0 :(得分:1)
因为您分配了该数组的引用。所以你实际上是在引用具有不同变量名的相同数组。
如果你想分开数组
var b = a.slice();
它为您提供了一个具有相同初始数组值的新数组。
slice()方法将数组的一部分的浅表副本返回到从头到尾选择的新数组对象(不包括结尾)。原始数组不会被修改。