ECMAScript 2016 中的 Object.assign 方法详解

Object.assign() 是 ECMAScript 2016 标准中新增加的方法之一。它可以将多个对象的属性合并到一个对象中,并返回合并后的对象。这个方法在前端开发中非常有用,可以用来合并对象、拷贝对象等。在本篇文章中,我们将详细介绍 Object.assign() 方法的使用方式、参数以及一些实例,帮助读者更好地掌握和应用这个方法。

语法

Object.assign() 的语法如下:

这个方法接受两个或者多个参数,第一个参数是目标对象,后面的参数是源对象。它会将源对象的所有属性和方法复制到目标对象中,如果遇到同名属性,则会覆盖目标对象中的属性。

需要注意的是,Object.assign() 方法只复制对象的自有属性。如果从原型继承了属性,那么这些属性不会被复制到目标对象中。

参数使用说明

target

target 是合并后的目标对象。它将会被修改,且不会被返回,所以要注意合并时的顺序。

sources

sources 是一个或多个源对象,它们的属性会被拷贝到目标对象中。如果传入的源对象是 null 或者 undefined,那么它们将被忽略。

示例

示例1:合并对象

这个示例中,目标对象和源对象都包含属性 b。在合并时,目标对象中的属性 b 被源对象中的属性 b 覆盖了。最终的目标对象包含了 a、b 和 c 三个属性。

示例2:拷贝对象

这个示例中,将源对象拷贝到目标对象中,生成了一个新的对象。这个方法可以用于浅拷贝对象,但注意到源对象中的属性是对象时,仅存在新对象的属性值,而不是源对象的属性值的深层拷贝。

总结

Object.assign() 可以将多个对象的属性合并到一个对象中,并返回合并后的对象。这个方法在前端开发中非常有用,可以用来合并对象、拷贝对象等。需要注意的是,Object.assign() 方法只复制对象的自有属性,如果从原型继承了属性,那么这些属性不会被复制到目标对象中。在使用时需要注意两个参数的顺序,以及属性覆盖的问题。同样的,Object.assign() 方法在深度拷贝时,因为仅生成新对象类的属性,对源对象另一属性的影响可以在对象的深度拷贝中发现。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6530fba07d4982a6eb28fa55


纠错
反馈