Skip to content
本站總訪問量
本站訪客數 人次

Object.assign()

Object.assign() 是 JavaScript 中的一個靜態方法,用於將一個或多個源對象的可枚舉屬性複製到目標對象。這個方法返回修改後的目標對象。

語法

jsx
Object.assign(target, ...sources);

參數

  • target: 目標對象,屬性將被複製到這個對象。
  • sources: 一個或多個源對象,從這些對象中複製屬性。

返回值

返回目標對象。

使用示例

合併對象

以下示例展示了如何使用 Object.assign() 合併多個對象:

jsx
const obj1 = { a: 1 };
const obj2 = { b: 2 };
const obj3 = { c: 3 };

// 合併 obj1, obj2, obj3 到一個新對象
const mergedObj = Object.assign({}, obj1, obj2, obj3);
console.log(mergedObj); // 輸出: { a: 1, b: 2, c: 3 }

在這個例子中,使用空對象 {} 作為目標對象,這樣可以避免修改任何源對象。

這裡,copyoriginal 的一個淺拷貝,兩者的屬性相同。

注意事項

  1. 淺拷貝: Object.assign() 只會進行淺拷貝,對於嵌套對象,僅複製引用。如果源對象的某個屬性是對象,則只會複製該對象的引用。
  2. 可枚舉屬性: 只有可枚舉的自有屬性會被複製,原型鏈上的屬性不會被複製。
  3. 處理 null 或 undefined: 如果源對象是 nullundefined,則會被忽略,不會拋出錯誤。

Object.assign() 是一個非常有用的方法,常用於對象合併、克隆和屬性添加等操作[1][2][4]。

Contributors

The avatar of contributor named as lucashsu95 lucashsu95

Changelog