JavaScript 中的 Object.assign()?
Object.assign()
该方法用于将一个或多个源对象复制到目标对象。由于它对源对象和目标对象分别使用“读取”和“设置”,因此会调用getter 和 setter。该方法返回包含从目标对象中复制的属性和值的 target 对象。该方法不针对 null 值或 undefined 值引发异常。
语法
Object.assign(target, ...source objects);
需要 source object 和 target object 作为参数,并将 source objects 推送到 target object 中,并显示 target object。
示例 1
在以下示例中,将来自源对象“obj1”、“obj2”和“obj3”的属性推送到目标对象“obj”,并将target object 作为输出返回。
<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”的值覆盖了其他先前分配的值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}
广告