在Chrome控制台上运行时,请参阅以下代码及其相应的输出。
var x = [1,2,3,4,5,6,7,8]
var y = x;
console.log(y.length);
x.splice(1,1);
console.log(y.length);
console.log(x.length);
输出如下:
8
7
7
我的查询是因为我在拼接y
之前初始化变量x
,然后y
自动拼接的原因。提前谢谢。
答案 0 :(得分:3)
因为当您将x
分配给y
时,您传递了该对象的引用,因此您不会复制该项目。 x
和y
是相同的“对象”
答案 1 :(得分:1)
在JavaScript中,原始类型按值复制,引用类型通过引用复制。 更多信息:http://docstore.mik.ua/orelly/web/jscript/ch09_03.html
希望这有帮助。
答案 2 :(得分:0)
您的代码是对数组的引用。试试这个var y = [...x];