方法使用后如何保持变量值相同?

时间:2016-03-16 18:50:09

标签: javascript arrays methods

var x = [1,2,3];
var y = x;
y.fill(5);
console.log(x); //[5,5,5]
console.log(y); //[5,5,5]

如何防止 fill()方法更改 var x 数组?为什么 y.fill()同时更改 var y var x

2 个答案:

答案 0 :(得分:3)

y指向与x相同的数组。如果您想阻止这种情况,则需要复制/克隆x,并将其分配给y

var y = x.slice();

答案 1 :(得分:0)

你的var y是对x数组的引用。试试var y = [1,2,3];var y = x.slice();会为您提供浅色副本。向上看VS.浅拷贝,以确定这是否是一个合适的解决方案。