JavaScript:如何在不更改源对象的情况下修改复制的对象?

JavaScript:如何在不更改源对象的情况下修改复制的对象?,javascript,Javascript,我尝试将一个JSON变量复制到另一个变量,然后删除第二个变量的部分内容,但是第一个变量的内容也被删除。如何使我删除了第二个变量的部分而不是第一个变量的部分? 谢谢你的帮助 var variable1={ test1:“test1”, 测试2:“测试2” } var variable2=variable1; 变量2.test1=“”; log(JSON.stringify(variable1)); log(JSON.stringify(variable2)) var variable1={ te

我尝试将一个JSON变量复制到另一个变量,然后删除第二个变量的部分内容,但是第一个变量的内容也被删除。
如何使我删除了第二个变量的部分而不是第一个变量的部分?
谢谢你的帮助

var variable1={
test1:“test1”,
测试2:“测试2”
}
var variable2=variable1;
变量2.test1=“”;
log(JSON.stringify(variable1));
log(JSON.stringify(variable2))
var variable1={
test1:“test1”,
测试2:“测试2”
}
var variable2={…variable1};
变量2.test1=“”;
log(JSON.stringify(variable1));

log(JSON.stringify(variable2))这是否回答了您的问题。旁注:这不是一个“JSON变量”。它是一个普通的老JavaScript对象。JSON是数据的字符串表示形式。在您的示例中,唯一的JSON是当您在
variable1
variable2
中对JavaScript对象进行字符串化时,虽然它是重复的,但那里的答案并不是很有用。1:您使用的不是JSON,而是一个对象。2:do
variable2={…variable1}
。这个是spread运算符,您可以在这里阅读所有内容:具有讽刺意味的是,通过JSON克隆对象将是一种有效(尽管效率低下)的方法:
const variable2=JSON.parse(JSON.stringify(variable1))
@downloadpia这是一个浅拷贝,在本例中已经足够了,但如果存在嵌套对象,则会导致问题。