淺拷貝與深拷貝

@yu19941994
@yu19941994
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);

*新手學前端,所紀錄僅為吸收網路文章後,所做的匯整筆記,有錯歡迎留言指正

--

--