一、Object.assign()對象的拷貝
Object.assign() 方法用于將所有可枚舉屬性的值從一個或多個源對象復制到目標對象。它將返回目標對象。 Object.assign(target, ...sources) 【target:目標對象】,【souce:源對象(可多個)】 舉個栗子:const object1 = { a: 1, b: 2, c: 3 }; const object2 = Object.assign({c: 4, d: 5}, object1); console.log(object2.c, object2.d); console.log(object1) // { a: 1, b: 2, c: 3 } console.log(object2) // { c: 3, d: 5, a: 1, b: 2 } 注意:1.如果目標對象中的屬性具有相同的鍵,則屬性將被源對象中的屬性覆蓋。 后面的源對象的屬性將類似地覆蓋前面的源對象的屬性 2.Object.assign 方法只會拷貝源對象自身的并且可枚舉的屬性到目標對象。該方法使用源對象的[[Get]]和目標 對象的[[Set]],所以它會調用相關 getter 和 setter。因此,它分配屬性,而不僅僅是復制或定義新的屬性。如 果合并源包含getter,這可能使其不適合將新屬性合并到原型中。為了將屬性定義(包括其可枚舉性)復制到 原型,應使用Object.getOwnPropertyDescriptor()和Object.defineProperty() 。