js物件之淺拷貝和深拷貝

2021-09-11 06:53:18 字數 730 閱讀 9299

淺拷貝依次遍歷內容,依次賦值

var p=;

var k=;

console.log(p);

console.log(k);

for(let key in p)

console.log(p);

console.log(k);

使用object.assign()方法,這個方法的作用

問題來,你這樣依次拷貝出現的問題就是物件裡面含有物件或者陣列,date等屬性,又會出現只拷貝位址的情況,解決方法只有採用遞迴的方式拷貝。

var o = 

}var b =

function isobject(obj)

function deepcopy(fa, fb) else

}}deepcopy(b, o);

var arr1 = [1, 4, 8];

var arr2 = ;

deepcopy(arr2, arr1)

console.log(arr2);

console.log(b);

深拷貝第二種封裝:

效果:

js物件淺拷貝和深拷貝

1 淺拷貝 varobj 定義乙個物件 functioncopy obj 定義乙個空物件,用來儲存key和value for varkeyinobj returnnewobj 將新物件作為返回值,返回到外面 varobj2 copy obj 將obj複製給obj2 obj2.a 20 改變obj2中...

js 物件深拷貝 深拷貝與淺拷貝

前言 最近在複習一些面試的知識點,剛剛好複習到了這一部分,於是就寫下這篇文章記錄一下。一 值型別和引用型別 在學習深拷貝和淺拷貝之前,我們先來了解一下js的變數型別。值型別 vs 引用型別 值型別 值型別主要有 number,string,boolean,symbol,null,undefined ...

js物件的深拷貝和淺拷貝

淺拷貝 只是複製指向某個物件的指標,而不複製物件本身新舊物件,它們還是共享同一記憶體。深拷貝 會另選創造乙個一模一樣的物件,新物件和原物件不共享記憶體,修改新物件不會改到原物件。也就是老死不相往來了。知道了深淺拷貝的含義,那就來總結如何實現深淺拷貝。let data 第一種情況 let obj da...