1. 拓展运算符(…)
ES6入门中是这样说的:
对象的扩展运算符(…)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中。
let obj1 = {
name: '陈伟霆',
gender: '男',
hobby: '唱歌'
};
let obj2 = {
name: '陈伟霆',
gender: '男',
hobby: '跳舞',
nationality: '中国'
};
let obj = {...obj1, ...obj2};
console.log(obj); // { name: '陈伟霆', gender: '男', hobby: '跳舞', nationality: '中国' }
2.Object.assign()
MDN:
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。
let obj1 = {
name: '陈伟霆',
gender: '男',
hobby: '唱歌'
};
let obj2 = {
name: '陈伟霆',
gender: '男',
hobby: '跳舞',
nationality: '中国'
};
let obj = Object.assign({}, obj1, obj2);
console.log(obj);
// { name: '陈伟霆', gender: '男', hobby: '跳舞', nationality: '中国' }
//obj !== obj2 浅拷贝
数组也是对象,你可以对数组使用,但需要注意的是数组的index往往都是一样的,所以合并结果往往只有后一参数。