深拷貝與淺拷貝

2022-09-08 08:27:10 字數 544 閱讀 3151

1、基本資料型別的拷貝就是值得拷貝

2、引用資料型別的拷貝分為淺拷貝跟深拷貝

淺拷貝:目標物件跟源物件共用乙個實體,只是變數名不同

深拷貝:目標物件跟源物件都是獨立的個體

3、淺拷貝的方法:object.assign()

4、深拷貝的方法:

4-1:將物件轉換成字串(json.stringfy)->再將字串轉換成物件(json.parse)

注意:無法拷貝原始物件的函式,因為函式無法轉換成字串

4-2:遞迴迴圈

function deepcopy(origin,target)

for(var key in origin)

}else

return target

}//例子

var obj = , , ]

}]

}],

}var target = null;

target = deepcopy(obj,target)

console.log('111',target);

「淺拷貝」與「深拷貝」

c 中物件的複製就如同 轉殖 用乙個已有的物件快速地複製出多個完全相同的物件。一般而言,以下三種情況都會使用到物件的複製 1 建立乙個新物件,並用另乙個同類的已有物件對新物件進行初始化,例如 cpp view plain copy class rect rect rect1 rect rect2 r...

淺拷貝與深拷貝

淺拷貝 1 2 myclass a,b a b 為了封裝性和解耦,同型別的兩個物件之間進行賦值操作時,所有成員變數被複製,包括私有成員 指標變數。類的成員函式在傳遞或返回物件時都會進行物件複製產生臨時物件,比如函式呼叫時實參變為形參,以及函式返回物件。考慮到效能和使用者要求不同,編譯器不複製物件內部...

「淺拷貝」與「深拷貝」

c 中物件的複製就如同 轉殖 用乙個已有的物件快速地複製出多個完全相同的物件。一般而言,以下三種情況都會使用到物件的複製 1 建立乙個新物件,並用另乙個同類的已有物件對新物件進行初始化,例如 cpp view plain copy class rect rect rect1 rect rect2 r...