深拷貝 淺拷貝

2021-10-21 21:01:02 字數 652 閱讀 8031

淺拷貝直接賦值就可以,不多闡述

//舉個栗子

//簡單資料型別 直接 = 賦值

let a =

'你好'

let b = a

//複雜資料型別

//array

let arr =[1

,2,3

]let arr1 = arr.

concat()

......

深拷貝引用資料型別函式

function

deepclone

(obj)

// 判斷是陣列還是物件

let newobj = obj instanceof

array?[

]:// 遍歷 每一項中的key是否存在當前物件中 (判斷物件本身是否存在該屬性)

for(

let key in obj)

}return newobj

}let obj =}}

let obj1 =

deepclone

(obj)

console.

log(obj)

console.

log(obj1)

淺拷貝 深拷貝

copy mutablecopy copy 不管是可變的,還是不可變的,結果都是不可變的 mutablecopy 不管是不可變的,還是可變的,結果都是可變的 nsmutablestring str nsmutablestring stringwithformat a nsarray arr1 str...

深拷貝 淺拷貝

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

淺拷貝 深拷貝

retain是建立乙個指標,引用物件計數加1。copy屬性表示兩個物件內容相同,新的物件retain為1 與舊有物件的引用計數無關,舊有物件沒有變化。copy減少物件對上下文的依賴。retain屬性表示兩個物件位址相同 建立乙個指標,指標拷貝 內容當然相同,這個物件的retain值 1也就是說,re...