Object.assign(target,source1,source2)方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。
注意点:
1、assign是浅拷贝,此方法只拷贝源对象的自身属性,不拷贝继承的属性,不能拷贝prototype,不拷贝不可枚举的属性(enumerable: false)。
2、如果source某个属性的值是对象,那么assign拷贝的是这个对象的应用
3、如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性。
4、如果该参数不是对象,则会先转成对象,然后返回。undefined、null无法转成对象,如果这两个值传参时放在第一个则会报错。
5、如果只有一个参数,且不为undefined、null,会直接返回该参数。
6、字符串合入目标对象(以字符数组的形式),数值和布尔值都会被忽略。这是因为只有字符串的包装对象,会产生可枚举属性。