JavaScript中的Object.assign()?

Object.assign()

此方法用于将一个或多个源对象复制到目标对象因为它在源上使用“ get”,在目标上使用“ Set”,所以它会调用getter和setter。它返回目标对象,该对象具有从目标对象复制的属性和值。此方法不会抛出空值或未定义的源值。

语法

Object.assign(target, ...source objects);

它以源对象和目标对象为参数,并将源对象推入目标对象并显示目标对象。

示例1

在以下示例中,源对象  “ obj1 ”,“ obj2 ”和“ obj3 ”的属性被推入目标对象“ obj ”,并且该目标对象作为输出返回。

<html>
<body>
<script>
   var obj1 = { a: 10, b:20 };
   var obj2 = { c: 30, d:40 };
   var obj3 = { e: 50 };
   var obj = Object.assign({}, obj1, obj2, obj3);
   document.write(JSON.stringify(obj));
</script>
</body>
</html>

输出结果

{"a":10,"b":20,"c":30,"d":40,"e":50}


示例2

在下面的示例中,对象的某些属性多个实例。在这种情况下,Object.assign()方法采用属性的最后分配值。例如,在所有3个对象中,“ obj1 ”,“ obj2 ”和“ obj3”属性' c '是通用的,并分别分配了值,例如1,3和0。obj3中的属性' c '的值会覆盖之前的其他值分配了值13。因此,如果我们看一下输出,则为属性' c '分配了值0

<html>
<body>
<script>
   var obj1 = { a: 10, b:20, c:1 };
   var obj2 = { b: 30, d:10, c:3 };
   var obj3 = { e: 60, d:70, c:0 };
   var obj = Object.assign({}, obj1, obj2, obj3);
   document.write(JSON.stringify(obj));
</script>
</body>
</html>

输出结果

{"a":10,"b":30,"c":0,"d":70,"e":60}