changeName方法返回的一个对象,后面跟着name的修改,这个是什么语法



 
const p1 = {
    name:'lily',
    age:1,
    city:'北京'
}
function changeName(p){
    return{...p,name:'ford'}
}
changeName(p1)

...是解够

 //第一步
{...p,name:'ford'}={name:'lily',age:1,city:'北京',name:'ford'}
//第二步 相同key取最后一次的值 key的位置不变
{name:'lily',age:1,city:'北京',name:'ford'}={name:'ford',age:1,city:'北京'}
    

例如
    const obj = {a: "one", b: "two", a: "three"};
    console.log(obj);//{a: "three", b: "two"}

这是 JavaScript 中的对象扩展语法。三个点 (...) 被称为展开运算符,它可以用来将一组值转换为函数参数或数组、对象的元素。
在该示例中,展开语法用于创建 p 对象的副本,并将其中的 name 属性从 'lily' 修改为 'ford',因此返回的对象是:

{
  name: 'ford',
  age: 1,
  city: '北京'
}