如何复制JavaScript对象?

时间:2014-05-07 12:57:41

标签: javascript jquery oop

我使用的是普通的JavaScript对象。我必须创建对象的精确副本才能进行更改:

var gRoll = {a:"pankaj",b:
{
a:"A",b:"c"
}} 

var copy = gRoll;
copy.a = "Karma";

这是在父对象中进行更改。请给我解决方案,以创建对象的副本,而无需参考旧的。与OOPS中的原型设计模式相同。

2 个答案:

答案 0 :(得分:2)

您使用副本

引用同一个对象
var gRoll = {
    a:"pankaj",
    b:{a:"A",b:"c"}
}
var newObject = Object.create(gRoll);
newObject.a = 'Karma';

alert(gRoll.a); //pankaj
alert(newObject.a); //Karma

答案 1 :(得分:0)

您正在做的不是创建副本,而是使用新变量引用现有对象,因此问题。

如果您使用的是jQuery,请使用其extend()方法复制现有对象...使用可选参数进行深度复制。 http://api.jquery.com/jquery.extend/