1. 程式人生 > >JavaScript中的淺拷貝和深拷貝

JavaScript中的淺拷貝和深拷貝

ons == 進行 新建 手動 一個 var javascrip 空間

淺拷貝:拷貝引用。

拷貝後的新對象和源對象都是指向同一個引用地址,因此彼此之間操作互相影響。

let a = {num:1};

let b = a;

console.log(a===b); //true

a.num = 2;

console.log(b.num);//2

深拷貝:拷貝數據

深拷貝後的新對象在對內存中重新分配內存空間,並把源對象的所有數據都進行新建拷貝,以拷貝出來的新對象的引用跟源對象的引用指向不是同一個地址。

手動復制:手動的把源對象的每個屬性依次給新對象的每一個屬性。

var one ={a::1,,b:2,c:3};

var two ={a:one,b:one.b,c:one.c};

one.a=10;

console.log(one.a);//10

console.log(two.a)//1

JavaScript中的淺拷貝和深拷貝