1、使用Object.assign()方法:
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const mergedObj = Object.assign({}, obj1, obj2);
// 输出:{ a: 1, b: 3, c: 4 }
2、使用展开运算符...(ES6语法):
对象的扩展运算符(...)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中。
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, b: 3, c: 4 };
// 输出:{ a: 1, b: 3, c: 4 }
3、使用for...in循环(递归赋值):
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const mergedObj = { ...obj1 };
for (let key in obj2) {
if (obj2.hasOwnProperty(key)) {
mergedObj[key] = obj2[key];
}
}
// 输出:{ a: 1, b: 3, c: 4 }
4、使用lodash的merge方法(如果已经在项目中使用了lodash):
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const mergedObj = _.merge({}, obj1, obj2);
// 输出:{ a: 1, b: 3, c: 4 }
5、jquery中的extend()
jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象。
$.extend(obj1, obj2) // 浅拷贝
$.extend(true, obj1, obj2) // 深拷贝
原文出处:http://www.dongblog.com/notes/102.html
来源:博客网 转载请注明出处!