在 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() 本身會回傳數值,回傳的數值就是輸入的第一個參數,第二次使用就直接用回傳結果作為輸出。
沒有留言:
張貼留言