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 瀏覽量

啟動你的 職業

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.