如何制作JavaScript对象的副本?

时间:2013-05-09 04:18:54

标签: javascript variables reference copy

我需要制作变量的临时副本才能进行更改。这就是我的意思:

var x = ["a", "b", "c"];
var y = x;
y[1] = "2"
//x: ["a", "b", "c"];
//y: ["a", 2, "c"];

值得指出的是,我使用的是我自己定义的对象,而不是内置的数据结构。

3 个答案:

答案 0 :(得分:1)

JavaScript中基本类型“克隆”数组的标准方法(根据您的要求)如下所示:

var x = ["a", "b", "c"];
var y =  x.slice(0);
y[1] = "2";

请注意,如果数组包含复杂类型(对象),那么它将保留原始引用;换句话说,它不会对对象数组执行“深度”复制。

答案 1 :(得分:0)

试试这个

var x = ["a", "b", "c"];
var y = JSON.parse(JSON.stringify(x));
//y = ["a", "b", "c"];

然后你可以按照自己的意愿操纵你的新物体。

答案 2 :(得分:0)

您可以使用jQuery克隆您的对象

var newObject = jQuery.extend(true, {}, oldObject);

jQuery Documentation