js深拷貝與淺拷貝

2022-06-03 04:27:10 字數 977 閱讀 7310

之前對於這個問題並沒有深究過,沒有太注意......  可能沒咋遇到過或者遇到了並沒搞清楚是怎麼一回事,然後在各大社群查詢了解,大概是這麼回事:

除了物件以外的其他拷貝都是值的拷貝,而物件就比較特殊了,js儲存物件的時候,存的是位址池,所以當我們拷貝乙個物件的時候,新拷貝的物件與原物件用的是同乙個位址池,也就是說,當你改變新拷貝物件的值,那麼原物件的值也會被改變,但是很多情況下,我們是不想要修改原物件值的,這個時候,就需要深拷貝了。深拷貝就是另闢新天地,不影響原有的物件。

淺拷貝例項:

深拷貝實現:

一:用json解析實現

var obj=

}var copyobj=json.parse(json.stringify(obj));

copyobj.name='鄧超';

copyobj.friend.first='孫儷';

copyobj.friend.forth='李易峰';

二.重寫

function

deepclone(obj) ;

//obj屬於基本資料型別,直接返回obj

js深拷貝與淺拷貝

1 基礎知識 基本型別與引用型別 js中可以把變數分成兩部分,基本型別和引用型別。基本型別包括 undefined null boolean number和string 引用型別值可能由多個值構成的物件。在對基礎型別資料進行拷貝時,實際相當於建立新的相同資料 hello 賦值給b var a hel...

js 淺拷貝與深拷貝

js 有兩種資料型別,基礎資料型別和引用資料型別 基礎資料型別都是按值訪問的,我們可以直接操作儲存在變數中的實際的值。而引用型別如array,1.淺拷貝 只複製指向某個物件的指標,而不複製物件本身,新舊物件共享一塊記憶體 淺拷貝是指只複製一層物件,當物件的屬性是引用型別時,實質複製的是其引用,當引用...

js深拷貝與淺拷貝

實現乙個頁面或者乙個功能時,常常遇到的場景需要我們備份乙個陣列或者物件,這時候出現了深拷貝與淺拷貝效果截然不同呀總結如下 var arr 1,2,3,4 shallowarr arr arr 0 change console.log arr console.log shallowarr change...