js實現深拷貝的兩種方式

2021-09-25 02:14:53 字數 685 閱讀 1972

一、基本資料型別

資料分為基本資料型別(string、null、boolean、undefined、symbol、number)和引用資料型別。

基本資料型別的特點:直接儲存在棧中的資料。

引用資料型別的特點:儲存的是該物件在棧中的引用,真實資料儲存在堆中。

引用資料型別在棧中儲存了指標,該指標指向堆中該實體的起始位址。當直譯器尋找引用值時,會首先檢索其在棧中的位址,取得位址後從堆中獲得實體。

二、實現深拷貝的兩種方式

es5:使用遞迴方法(遍歷物件和陣列,知道裡邊都是基本資料型別,然後再去複製,就是深拷貝)

//定義檢測資料型別的功能函式

function checkedtype(target)

//實現深度轉殖--物件或陣列

function clone(target);

}else if(targettype==='array')else

//遍歷目標資料

for(let i in target)

else

}return result

}

es6:json.parse(json.stringify(object));

js實現深拷貝的5種方式

json方法實現 tmp和result是相互獨立的,沒有任何聯絡,有各自的儲存空間。let deepclone function obj let obj1 liuxiaotian let test deepclone obj1 console.log test 1234567891011121314...

實現深拷貝的兩種方法

首先了解什麼是遞迴 簡單來說遞迴就是函式內部自己呼叫自己 使用遞迴首先要找規律 然後找出口 下面是乙個簡單的遞迴demo 幫助大家了解下遞迴的使用技巧 計算1 2 3 10的和 function fun i return i fun i 1 console.log fun 10 10 fun 9 1...

JS淺拷貝與深拷貝實現方式

js淺拷貝與深拷貝只針對的是陣列 array 和物件 object 兩種引用資料型別。引用型別的資料在記憶體中分兩部分儲存,分別是儲存在棧中的引用位址和儲存在堆中的資料。淺拷貝其實拷貝的是引用型別資料的位址,兩個物件共享堆中的資料,乙個物件改變了某個屬性值,另乙個物件的屬性值也會跟著改變。而深拷貝則...