当前位置:   article > 正文

Object.assign用法_object.assign()三个参数

object.assign()三个参数

一、Object.assign是什么?

Object.assign() 方法将所有可枚举Object.propertyIsEnumerable() 返回 true)的自有Object.hasOwnProperty() 返回 true)属性从一个或多个源对象复制到目标对象,返回修改后的对象。

二、用法:

  1. Object.assign(target, ...sources)
  2. 参数: target--->目标对象,接收源对象属性的对象,也是修改后的返回值。
  3. source--->源对象,包含将被合并的属性。
  4. 返回值:target,即目标对象。

三、使用示例:

情景一:目标对象和源对象无重名属性

  1. var target={name:'小明',age:18};
  2. var source={job:'student'}
  3. var result=Object.assign(target,source);
  4. console.log(target,target==result);

运行结果:

我们可以看到source上的state属性合并到了target对象上。如果只是想将两个或多个对象的属性合并到一起,不改变原有对象的属性,可以用一个空的对象作为target对象。 像下面这样:

var result=Object.assign({},target,source);

情景二:目标对象和源对象有重名属性

如果目标对象与源对象具有相同的 key,则目标对象中的属性将被源对象中的属性覆盖,后面的源对象的属性将类似地覆盖前面的源对象的属性。

  1. var target={name:'小明',age:17}
  2. var source={job:'student',age:27}
  3. var result=Object.assign(target,source)
  4. console.log(target)

运行结果:

可以看到如果有同名属性的话,后面的属性值会覆盖前面的属性值。

情景二:有多个源对象

  1. var target={name:'小明',age:17}
  2. var source1={job:'student',age:27}
  3. var source2={high:'180',age:25}
  4. var result=Object.assign(target,source1,source2)
  5. console.log(target)

运行结果:

注意:

针对深拷贝 (en-US), 需要使用其他办法,因为 Object.assign() 只复制属性值。

假如源对象是一个对象的引用,它仅仅会复制其引用值。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/68082
推荐阅读
相关标签
  

闽ICP备14008679号