我试图了解一些JavaScript,发现了一些非常意外的行为。我不太了解这种语言,所以我想找出这种行为的含义,以便我可以正式地了解它。
这是行为的示例:
var test={'x':2};
var test2=test;
test2.sourceLinks = [];
console.log('test',test);
console.log('test2',test2);
令我惊讶的是,我发现修改第二个变量也会以某种方式修改第一个变量。变量“ test”还将具有一个属性.sourceLinks = []。我是否了解正确的情况?如果是,此行为的正式术语是什么?
我发现如何正确克隆JavaScript对象涵盖了答案。在我发布之后,尽管覆盖的范围超出了我的要求。
它持有参考。
当您将对象/数组/函数分配给另一个对象/数组/函数时,它将分配引用而不是值。
为了克服这个问题,您必须克隆它
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句