2023年6月5日 星期一

在 JavaScript 裡複製物件的新選項

 在 JavaScript 裡複製物件的新選項

前言

  在傳統的 JavaScript 裡要複製物件的內容必須自己寫一個列舉每個成員並複製的方法,也是我一直以來用的方式,但最近發現物件本身已有提供複製的方法,在此把學習的過程做個紀錄。


內容

範例如下

let obj = {
  str : "String",
  num : 1234,
};
let obj1 = {
  num : 12345,
};
let dstObj = {
  data : "data"
};
//
Object.assign( dstObj , obj );
console.log( dstObj);
// [object Object] {
//   data: "data",
//   num: 1234,
//   str: "String"
// }
//
console.log( Object.assign( dstObj , obj , obj1 ) );
// [object Object] {
//   data: "data",
//   num: 12345,
//   str: "String"
// }


複製是透過 Object.assign() 來達成,用法很簡單,第一個參數是要複製到的目標物件,第二個參數則是複製的來源物件,範例的第二次使用時示範了複製多個來源物件,來源物件是 "obj" 與 "obj1",要注意最後的結果 "num"是 12345 ,這代表著它是按照樹入的順序來複製的! Object.assign() 本身會回傳數值,回傳的數值就是輸入的第一個參數,第二次使用就直接用回傳結果作為輸出。


參考資料

[ developer.mozilla.org ] Object.assign()

沒有留言:

張貼留言