此方法用于将一个或多个源对象复制到目标对象。因为它在源上使用“ get”,在目标上使用“ Set”,所以它会调用getter和setter。它返回目标对象,该对象具有从目标对象复制的属性和值。此方法不会抛出空值或未定义的源值。
Object.assign(target, ...source objects);
它以源对象和目标对象为参数,并将源对象推入目标对象并显示目标对象。
在以下示例中,源对象 “ 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}
在下面的示例中,对象的某些属性有多个实例。在这种情况下,Object.assign()方法采用属性的最后分配值。例如,在所有3个对象中,“ obj1 ”,“ obj2 ”和“ obj3”属性' c '是通用的,并分别分配了值,例如1,3和0。obj3中的属性' c '的值会覆盖之前的其他值分配了值1和3。因此,如果我们看一下输出,则为属性' 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}