我使用的是普通的JavaScript对象。我必须创建对象的精确副本才能进行更改:
var gRoll = {a:"pankaj",b:
{
a:"A",b:"c"
}}
var copy = gRoll;
copy.a = "Karma";
这是在父对象中进行更改。请给我解决方案,以创建对象的副本,而无需参考旧的。与OOPS中的原型设计模式相同。
答案 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/