一,两个对象遍历赋值合并
function mergeObj(obj1, obj2) {
for (let key in obj2) {
if (obj2.hasOwnProperty(key) === true) obj1[key] = obj2[key];
}
return obj1;
}
let obj3 = mergeObj({ a: 1 }, { b: 2, c: 3 });
console.log(obj3); //{a:1,b:2,c:3}
二,使用Object.assign(target,…sources)
可以把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。
注:target目标对象自身也会改变
var obj1 = { a: 1 };
var obj2 = { b: 2, c: 4 };
var copyObj = Object.assign({}, obj1, obj2);
console.log(copyObj); //{a:1,b:2,c:4}
var copyObj1 = Object.assign(obj1, obj2);
console.log(copyObj1); //{a:1,b:2,c:4}
console.log(obj1); //{a:1,b:2,c:4}