所以我的问题是如何在不改变用户对象的情况下更改用户对象中的petNames对象。
const user = {
name: 'Harry',
age: 50,
petNames: {
dog: 'Lisie',
cat: 'Foxer'
}
};
第一级我们可以像一样改变
{...user, age: 48 }
它将返回
{
name: 'Harry',
age: 48,
petNames: {
dog: 'Lisie',
cat: 'Foxer'
}
};
但是我如何更改petNames?
例如,狗的名字改成了"雷克斯"。
并获得类似的对象
{
name: 'Harry',
age: 50,
petNames: {
dog: 'Rex',
cat: 'Foxer'
}
};
谢谢!
您也可以扩展内部属性:
const user = {
name: 'Harry',
age: 50,
petNames: {
dog: 'Lisie',
cat: 'Foxer'
}
};
const newUser = {
...user,
petNames: {
...user.petNames,
dog: 'rex'
}
};
console.log(user.petNames === newUser.petNames); // false