Javascript更改一个对象也会更改另一个对象
在我的代码片段中,我有一个对象“cat”,它存储在两个变量“Pelle”和“Kalle”中。 如果我改了Pelle的名字,它也会改Kalle的名字。我相信这与他们提到猫有关 我怎样才能避免这种情况 如何在不更改Kalle名称的情况下更改Pelle的值 是我如何在myFunction中存储值的问题,还是在modify函数中更改名称的问题Javascript更改一个对象也会更改另一个对象,javascript,Javascript,在我的代码片段中,我有一个对象“cat”,它存储在两个变量“Pelle”和“Kalle”中。 如果我改了Pelle的名字,它也会改Kalle的名字。我相信这与他们提到猫有关 我怎样才能避免这种情况 如何在不更改Kalle名称的情况下更改Pelle的值 是我如何在myFunction中存储值的问题,还是在modify函数中更改名称的问题 var cat = { name : "Melvin", age: : "9", eyeColor : "yellow" }; var
var cat = {
name : "Melvin",
age: : "9",
eyeColor : "yellow"
};
var pelle;
var kalle;
myFunction(cat);
modify();
print();
function myFunction(c) {
pelle = c;
kalle = c;
}
function modify() {
pelle.name = "Watts";
}
function print() {
document.getElementById("demo").innerHTML = pelle.name + " " + kalle.name;
}
print()的输出为瓦特
所需输出为瓦茨梅尔文。
pelle=c;kalle=c
您只是创建了对同一对象的两个引用,即使它没有通过引用,这个示例的行为方式也是一样的pelle
,kelle
,和cat
都是同一个对象,因此如果您修改它,它将被修改。这并没有给出解决方案:如何将输出设置为“Watts Melvin”而不是“瓦特”?好的,那么我如何通过值传递它,从而获得所需的输出?