淺拷貝與深拷貝
Published in
Nov 7, 2020
淺拷貝(Shallow Copy)、深拷貝(Deep Copy)差別在於,淺拷貝僅「複製到第一層」,而「深拷貝」則複製了全部,也因此「原本的傳參考特性就沒有了」
1.淺拷貝方法
陣列的淺拷貝方法
const A = [‘hihi’, ’yoyo’, ’gigi’];
const B = A.slice();
const B = [].concat(A);
const B = […A];
const B = Array.from(A);
物件的淺拷貝方法
第一種:jQuery.extend,因為預設是false
var newHome = jQuery.extend({}, home);
第二種:ES6 -> Object.assign
var newHome = Object.assign({}, home);
2.深拷貝方法
第一種:先轉為字串,再轉為物件
var newHome = JSON.parse(JSON.stringify(home));
第二種:jQuery.extend(true,{},X)
var newHome = jQuery.extend(true,{}, home);
第三種:lodash
var newHome = clonedeep(home);
*新手學前端,所紀錄僅為吸收網路文章後,所做的匯整筆記,有錯歡迎留言指正