返回

Object.assign的妙用,带你领略对象合**并**的奥妙

前端

Object.assign的魔法

Object.assign() 這個方法是JavaScript中的寶藏,它可以輕鬆地合併一個物件中的所有可枚舉屬性到另一個物件中。它能讓您輕鬆地合併物件,而無需繁瑣的物件複製或擴展運算符。

Object.assign的運作方式

Object.assign() 使用以下步驟合併物件:

  1. 該方法會先創建一個新的物件,該物件是 target 物件的淺拷貝。
  2. 然後,它會遍歷 source 物件中的每個可枚舉屬性。
  3. 對於每個屬性,它會將該屬性及其值複製到 target 物件。
  4. 如果 target 物件中已存在同名的屬性,則該屬性及其值將被覆蓋。
  5. 一旦遍歷完成,新的物件將被返回,而 target 物件將保持未修改。

Object.assign的語法

Object.assign() 方法的語法如下:

Object.assign(target, ...sources)
  • target:要修改的物件。
  • sources:要合併到 target 物件中的物件。可以傳遞一個或多個 source 物件。

Object.assign的實用範例

現在,我們來看看一些 Object.assign() 的實用範例:

合併多個物件

const obj1 = {
  name: 'John',
  age: 30
};

const obj2 = {
  lastName: 'Smith',
  city: 'New York'
};

const obj3 = {
  email: 'john.smith@example.com'
};

const mergedObj = Object.assign({}, obj1, obj2, obj3);

console.log(mergedObj); // { name: 'John', age: 30, lastName: 'Smith', city: 'New York', email: 'john.smith@example.com' }

合併物件並覆蓋屬性

const obj1 = {
  name: 'John',
  age: 30
};

const obj2 = {
  name: 'Jane',
  age: 25
};

const mergedObj = Object.assign(obj1, obj2);

console.log(mergedObj); // { name: 'Jane', age: 25 }

合併物件並創建新物件

const obj1 = {
  name: 'John',
  age: 30
};

const newObj = Object.assign({}, obj1);

console.log(newObj); // { name: 'John', age: 30 }

Object.assign() 方法非常靈活,可以輕鬆地合併多個物件。它可以讓您輕鬆地將屬性從一個物件複製到另一個物件,而無需繁瑣的物件複製或擴展運算符。