Javascript 如何创建重复对象
我有一个Javascript 如何创建重复对象,javascript,object,underscore.js,Javascript,Object,Underscore.js,我有一个对象,其中嵌套了对象,如下所示 var g = { "steps": [{ "location": [{ "a": "1" }, { "a": "2" }] }] }; var h=Object.create(g); 我使用object创建了重复对象,如下
对象
,其中嵌套了对象
,如下所示
var g = {
"steps": [{
"location": [{
"a": "1"
}, {
"a": "2"
}]
}]
};
var h=Object.create(g);
我使用object
创建了重复对象,如下所示
var g = {
"steps": [{
"location": [{
"a": "1"
}, {
"a": "2"
}]
}]
};
var h=Object.create(g);
问题是,如果我在h
中修改任何内容,g
也会反映。我如何防止这种情况。我尝试了下划线
函数(克隆
)
修改:
h["steps"][0]["location"][0]["a"]="3"
修改后:
g
看起来像
h
看起来像
即使我修改了h
中的任何内容,g
也不应该被反射
有人能帮我吗
谢谢。根据文件
创建对象的浅复制克隆。任何嵌套对象或数组都将通过引用进行复制,而不是复制
浅复制对象往往会显示您现在实际遇到的问题。如果您使用的对象没有附加任何方法/变量,则可以执行此操作
var h = JSON.parse(JSON.stringify(g));
这是深度复制
注意:如果对象具有循环引用,则根据文档使用中描述的技术
创建对象的浅复制克隆。任何嵌套对象或数组都将通过引用进行复制,而不是复制
浅复制对象往往会显示您现在实际遇到的问题。如果您使用的对象没有附加任何方法/变量,则可以执行此操作
var h = JSON.parse(JSON.stringify(g));
这是深度复制
注意:如果对象具有循环引用,请使用Nice idea中描述的技术。不过要注意循环引用。还有非标准原型的物体。好主意。不过要注意循环引用。以及具有非标准原型的对象。