JavaScript中有没有直接的对象属性赋值

示例代码如下:

a = {id:1,name:'abc',type:'def'};
b = {name:'mmm',type:'nnn'};
a = b;

js中有没有直接将a和b中共有的属性赋值,然后不同的不动?

阅读 1.9k
3 个回答

一个就是和1楼一样,用展开符,

const obj1 = {a:1,b:2}
const obj2 = {a:3,b:0,c:10}
const newObj = { ...obj1, ...obj2 }
console.log(newObj)
// {a: 3, b: 0, c: 10}

一个就是用Object.assign()

const obj1 = {a:1,b:2}
const obj2 = {a:3,b:0,c:10}
const newObj = Object.assign({}, obj1, obj2)
console.log(newObj)
// {a: 3, b: 0, c: 10}

两个都是 位置靠后覆盖 位置靠前 的相同属性。

有啊 es6

let a = { name: 'abc', type: 'def', id: 1 }
const b = { name: 'mmm', type: 'nnn' }

a = { ...a, ...b }

// log a = { name: 'mmm', type: 'nnn', id: 1 } 如果想要不同的覆盖效果,可以调换a, b的位置  或者你也可以理解  Map, Set 也可以实现

感谢两位高手的回答,确实如此

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题