如何在javascript中深度复制对象作为对象而不是数组

How to deep copy an object in javascript as object not as array

本文关键字:对象 数组 复制 javascript 深度      更新时间:2023-09-26

如何将javascript中的对象深度复制为对象而不是数组

var x = {attr1: "value", attr2: "value"};
var y = $.extend(true, [], x);
var z = $.extend(true, [], x);
alert($.type(x)); // object
alert($.type(y)); // array [ why not object too ]
alert($.type(z)); // array [ why not object too ]

代替

var y = $.extend(true, [], x);

var y = $.extend(true, {}, x);
                       ^^--------- Empty object instead of empty Array

要在javascript中对对象进行深度复制,请执行JSON.parse(JSON.stringify(obj))。就你的问题而言,可以这样做:

var x = {attr1: "value", attr2: "value"};
var deep_copy = JSON.parse(JSON.stringify(x));