示例代码如下:
a = {id:1,name:'abc',type:'def'};
b = {name:'mmm',type:'nnn'};
a = b;
js中有没有直接将a和b中共有的属性赋值,然后不同的不动?
###一个就是和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 也可以实现
###感谢两位高手的回答,确实如此