在Javascript

时间:2018-06-15 09:54:04

标签: javascript node.js

在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自动拼接的原因。提前谢谢。

3 个答案:

答案 0 :(得分:3)

因为当您将x分配给y时,您传递了该对象的引用,因此您不会复制该项目。 xy是相同的“对象”

答案 1 :(得分:1)

在JavaScript中,原始类型按值复制,引用类型通过引用复制。 更多信息:http://docstore.mik.ua/orelly/web/jscript/ch09_03.html

希望这有帮助。

答案 2 :(得分:0)

您的代码是对数组的引用。试试这个var y = [...x];

相关问题