javascript中的深拷貝和淺拷貝

2021-08-20 02:22:21 字數 597 閱讀 4293

// 前拷貝

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 obj2 = {};

deepcopy(obj,obj2);

obj.name = "rose";

obj.hobbies.swim = "今天不游泳了";

obj.hobbies.dapai.puke = "打撲克";

//由於obj中的某個屬性也是物件形式,進行拷貝操作時使用賦值執行導致兩者相同

//通過修改發現確實相同

console.log(obj);

console.log(obj2);

JavaScript中的深拷貝和淺拷貝

通俗的說,二者之前最大的不同就是它們的賦值方式。深拷貝的賦值方式就是值賦值,淺拷貝的賦值方式就是物件賦值。下面具體寫兩個例子來使你更加易懂。深拷貝 let a 5 let b a b 10 console.log a 輸出a 5 console.log b 輸出b 10 a和b的值是各自的,互相並沒...

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,...