小编典典

如何不通过引用将JavaScript对象复制到新变量?[重复]

javascript

我在这里写了一个快速的jsfiddle,其中我将一个小的JSON对象传递给一个新变量,并修改了原始变量(而不是新变量)中的数据,但是新变量的数据也得到了更新。这必须意味着JSON对象是通过引用传递的,对吗?

这是我的快速代码:

var json_original = {one:'one', two:'two'}

var json_new = json_original;

console.log(json_original); //one, two
console.log(json_new); //one, two

json_original.one = 'two';
json_original.two = 'one';

console.log(json_original); //two, one
console.log(json_new); //two, one

有没有一种方法可以对JSON对象进行深层复制,以便修改原始变量不会修改新变量?


阅读 272

收藏
2020-05-01

共1个答案

小编典典

我发现,如果您不使用jQuery而仅对克隆 简单对象 感兴趣(请参见注释),则可以使用以下内容。

JSON.parse(JSON.stringify(json_original));
2020-05-01