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”的值覆盖了其他先前分配的值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}

更新日期:20-Aug-2019

615 浏览量

启动你的 职业

通过完成课程获得认证

开始学习
广告