js深淺拷貝

2022-07-09 05:24:20 字數 864 閱讀 7592

淺拷貝進行拷貝時只會複製指向某個物件的指標,而不會複製物件的本身,新舊物件還是共用同一塊記憶體,當我們修改其中乙個物件內容的時候,另乙個也會受到影響。深拷貝的話進行拷貝時就是建立乙個與舊物件完全一樣的的物件,新物件和舊物件不共用同一塊記憶體,修改其中乙個物件的內容另外乙個不會受到牽連。

淺拷貝方法:

1.通過object.assign

function

shallowcopy(obj),obj);

}

2.通過array.prototype.concat(),只能傳陣列

function

shallowcopy(obj)

3.通過array.prototype.slice(),只能傳陣列

function

shallowcopy(obj)

4.通過迴圈

function

shallowcopy(obj) ;

for (var prop in

obj)

}return

newobj;

}

深拷貝方法:

1.通過json.parse(json.stringify()),這種辦法無法實現對物件中方法的深拷貝

function

deepcopy(obj)

2.通過迴圈

function

deepcopy(obj) ;

if (obj && typeof obj === 'object')

else}}

}return

newobj;

}

JS深 淺拷貝

在js中,資料型別分為基本資料型別和引用資料型別兩種。對於基本資料型別來說,它的值直接儲存在棧記憶體中,而對於引用型別來說,它在棧記憶體中只是儲存了乙個指向對記憶體的引用,而真正的資料儲存在堆記憶體中。object array 這兩個就是引用型別,當我門直接去拷貝的話 copyobj obj 拷貝的...

js 深淺拷貝

深拷貝就是複製內部內容 淺拷貝就是複製記憶體位址 var obj 淺拷貝 引用傳遞 淺拷貝就是賦值,將鑰匙複製乙份 var o obj 深拷貝 內部內容複製乙份 將房子複製乙份 方法一 var str json stringify obj var obj3 json parse str 方法二 va...

js深淺拷貝

1.什麼是深淺拷貝 簡單的來說,加入b複製a a改變 如果b也跟著改變的話,那就是淺拷貝,反之是深拷貝 實現淺拷貝方法 1.賦值操作 var a 0 1,2 3,4 var b a a 0 5console log a 5,1,2,3,4 console log b 5,1,2,3,4 2.es6 ...