Object.assign简单总结

定义

Object.assign方法用来将源对象source的所有可枚举属性复制到目标对象target。至少需要两个对象作为参数,第一个参数为源对象,后面的均为目标对象。(以下用source代指源对象,target代指目标对象)

特性

  • 若target与source中有同名属性,则后面的属性覆盖前面的属性
  • Object.assign只复制自身属性,不可枚举属性(enumerable为false)和继承属性不会被复制
  • 属性名为Symbol的属性,也会被复制
  • 对于嵌套的对象,Object.assign的处理方法是替换,而不是添加。(因此无法实现深复制)
  • Object.assign可以处理数组,但是会将其视为对象,即将数组中的元素认为是属性名为0、1、2等的对象。Object.assign([1,2,3],[4,5])的结果为[4,5,3]。

用途

  • 为对象添加属性、方法
  • 克隆对象Object.assign({},target);
  • 合并多个对象(若要等到一个新的对象,则将source设为{})
  • 为属性指定默认值Object.assign({},DEFAULTS,options),一般情况下,DEFAULTS为默认值,options为用户提供的参数。(由于不能深复制,因此注意DEFAULTS和options只能是简单对象)
原文地址:https://www.cnblogs.com/youhong/p/9362371.html