Object.assign()
用于对象的合并,将源对象的所有可枚举属性 复制到目标对象
-
第一个参数是目标对象,后面的是源对象,源对象的参数可以是多个
-
如果目标对象与源对象有同名属性,则后面的属性会覆盖前面的属性
-
如果只有一个参数,即目标对象,则会返回该对象
- 如果参数不是对象,则会先转化为对象再返回
- 如果参数是undefined和null,它们会报错,这是由于undefined和null无法转成对象
-
如果非首位参数,规则会有所不同
- 首先会将参数转化为对象,如果无法转化,就跳过,所以undefined和null不会报错
- 如果是其他类型的数据(除了字符串),其他值都不会产生效果
- Symbol数据类型得值,也会被拷贝
注意
- Object.assign()是浅拷贝
- 同名属性替换,也就是当target和source两个对象出现重名的属性时,一般后面得属性会替换前面得属性的值