區分深複製和淺複製

2021-10-05 00:08:39 字數 1029 閱讀 8697

複製有層次性,針對引用資料型別

深複製:從表面複製到原型,複製物件擁有控制自身屬性而不影響別的被複製物件屬性

淺複製:只複製表面,複製物件和被複製物件,任何乙個修改都會影響對方

var  objcopy=[...arr]
var objcopy=object.assign(,arr)
var objcopy=arr.slice(0)
var objcopy=.contact(arr)
for(var item of arr)
深複製

var objcopy=
var objcopy=object.create(object.getpropertyof(obj),

object.getownpropertydescriptors(obj)),

var objcopy=object.assign(object.getproperty(obj),obj);
var objcopy=json.parse(json.stringify(obj))
// 交集

var set1=

[1,2,3,4,56,7],set2=

[3,4,56,7,8,9]

let s2=set1.filter(item=

>

)console.log(s2)

;// 並集

let s3 =

[...new set(set1.concat(set2))

]console.log(s3)

// 差集 並集 -交集

let s4 = s3.filter(item=

>

)console.log(s4)

淺複製和深複製

在c 中,下面三種物件需要呼叫拷貝建構函式 有時也稱 複製建構函式 1 乙個物件作為函式引數,以值傳遞的方式傳入函式體 全域性函式,傳入的是物件 void g fun resume c 2 乙個物件作為函式返回值,以值傳遞的方式從函式返回 全域性函式 返回的是物件 resume g fun 3 乙個...

深複製和淺複製

以下 是否完全正確,執行可能得到的結果是 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class a class b b void sayhello b b int main 程式正常執行 程式編譯錯誤 程式崩潰 程式死迴圈 這個程式會直接崩潰 voidsayhello ...

深複製和淺複製

main.m 深複製和淺複製。created by yaomars on 16 4 27.import 建立乙個nsdictionary,並建立可變副本和不可變副本,說下是深複製還是淺複製。int main int argc,const char argv 第三種方式 建立乙個nsdictionar...