定义:Object.assign()
静态方法将一个或者多个源对象中所有可枚举的自有属性复制到目标对象,并返回修改后的目标对象。- 用法:Object.assign(target, ...source) <target>为目标对象,<source>源对象,返回:target
- 示例:
const obj = { a: 1 }; const copy = Object.assign({}, obj); console.log(copy); // { a: 1 }
- 注意:
- 针对深拷贝,需要使用其他办法,因为
Object.assign()
只复制属性值。假如源对象是一个对象的引用,它仅仅会复制其引用值,就会存在引用共享的问题。 - 该方法可接收任意数量的源对象,并按照指定的顺序将属性复制到接收对象中去。如果多个源对象同名属性,则排位靠后的将覆盖靠前的。
- 如果传入参数不是对象,则会先转换成对象然后返回。但由于undefined和null无法转换成对象,传入将会报错。(不在首位不会报错)