通俗的說,二者之前最大的不同就是它們的賦值方式。深拷貝的賦值方式就是值賦值,淺拷貝的賦值方式就是物件賦值。下面具體寫兩個例子來使你更加易懂。
//深拷貝
let a = 5;
let b = a;
b = 10;
console.log(a);//輸出a = 5
console.log(b);//輸出b = 10
//a和b的值是各自的,互相並沒有影響。
//淺拷貝
const obj1 = ;
const obj2 = obj1;
obj2.b = 1;
console.log(obj1);//輸出,b的值被修改
console.log(obj2);//輸出
//obj1給obj2賦值,只是它倆名字不同,但是由於是賦值關係,內容卻是相同的,所以說obj1和obj2根本就是同乙個物件,修改其中的乙個物件內容,另乙個也會被修改,這就是淺拷貝。
javascript中的深拷貝和淺拷貝?
一 jquery的 extend 淺拷貝與深拷貝 extend deep target,object1 objectn deep 型別 boolean 如果是true,合併成為遞迴 又叫做深拷貝 target 型別 object object1 型別 object 乙個物件,它包含額外的屬性合併到第...
javascript中的深拷貝和淺拷貝
一 遇到的問題 寫了以下的一段js var a a,b,c var c a c.push d 然後console.log a 會發現a中也多了d 二 查詢資料並找到原因 因為在js中,物件和陣列都是引用傳遞,所謂引用傳遞就是當變數c賦值為陣列a後,a和c便指向了同乙個位址,這個位址的值便是 a,b,...
javascript中的深拷貝和淺拷貝
前拷貝 var obj var obj1 for var i in obj console.log obj1 深拷貝 var obj 封裝深拷貝 function deepcopy obj,obj1 else 在利用遞迴處理 複雜型別陣列 deepcopy obj key obj1 key var ...