Javascript更改一个对象也会更改另一个对象

Javascript更改一个对象也会更改另一个对象,javascript,Javascript,在我的代码片段中,我有一个对象“cat”,它存储在两个变量“Pelle”和“Kalle”中。 如果我改了Pelle的名字,它也会改Kalle的名字。我相信这与他们提到猫有关 我怎样才能避免这种情况 如何在不更改Kalle名称的情况下更改Pelle的值 是我如何在myFunction中存储值的问题,还是在modify函数中更改名称的问题 var cat = { name : "Melvin", age: : "9", eyeColor : "yellow" }; var

在我的代码片段中,我有一个对象“cat”,它存储在两个变量“Pelle”和“Kalle”中。 如果我改了Pelle的名字,它也会改Kalle的名字。我相信这与他们提到猫有关

我怎样才能避免这种情况

如何在不更改Kalle名称的情况下更改Pelle的值

是我如何在myFunction中存储值的问题,还是在modify函数中更改名称的问题

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”而不是“瓦特”?好的,那么我如何通过值传递它,从而获得所需的输出?