Object.assign是什么?
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。
它将返回目标对象。
简单来说,就是Object.assign()是对象的静态方法,
可以用来复制对象的可枚举属性到目标对象,利用这个特性可以实现对象属性的合并。
兼容性
目前IE浏览器不兼容Object.assign(),如果需要兼容IE的话最好不要直接使用这个方法。
Object.assign()用法:
Object.assign(target, ...sources)
target
source
返回值:target,即目标对象
案例1:目标对象和源对象无重名属性
let obj1 = {
name:'张三',
sex:'男'
}
let obj2 = {
age:14
}
let obj3 = Object.assign(obj1,obj2)
console.log(obj3)
console.log(obj1 === obj3)
**注意**
obj2上的age属性合并到了obj1对象上。如果只是想将两个或多个对象的属性合并到一起,
不改变原有对象的属性,可以用一个空的对象作为target对象。像下面这样:
let obj = Object.assign({},obj1,obj2)
案例2:目标对象和源对象有重名属性
let obj1 = {
name:'张三',
sex:'男'
}
let obj2 = {
name:'李斯',
age:14,
}
let obj3 = Object.assign({},obj1,obj2);
console.log(obj3)//{0: '男', name: '李斯', age: 14}
**注意**
可以看到如果有同名属性的话,后面的属性值会覆盖前面的属性值。