深度轉殖 淺拷貝

2021-10-22 03:18:29 字數 1736 閱讀 4855

​ 轉殖其實就是拷貝 就是複製 這是主要是針對引用資料型別來說的 也就是說在底層儲存的時候 使用堆疊儲存的

​ 我們主要針對的物件是 陣列 物件 因為只有他們才是引用型別 堆疊空間儲存

​ 拷貝涉及到兩種拷貝

​ 淺拷貝指的是 我們在拷貝被物件的時候 只是拷貝物件的位址 不是拷貝儲存

​ 等同於給乙個人去兩個名字 那麼當乙個發生改變的時候 另乙個也會收到影響

// 淺拷貝

let obj =};

// let arr = [22,44,66,88];

let data =

[// 22,44,66,88,,,

[22,44

,66,88

]];// 對物件進行淺拷貝

// let newobj = obj;

// console.log(obj);

// console.log(newobj);

// newobj.school = '吉林大學';

// console.log(obj);

// console.log(newobj);

// 淺拷貝模式之...

// let newarr = [...arr];

// console.log(arr);

// console.log(newarr);

// newarr.push(99);

// console.log(arr);

// console.log(newarr);

// let newdata = [...data];

// console.log(data);

// console.log(newdata);

// newdata[4].school = '吉林大學';

// console.log(data);

// console.log(newdata);

// 淺拷貝之json

// let str = json.stringify(data);

// let newdata = json.parse(str);

// console.log(data);

// console.log(newdata);

// newdata.push();

// console.log(data);

// console.log(newdata);

// newdata[2].push(99);

// console.log(data);

// console.log(newdata);

// newdata[0].school = '吉林大學';

// console.log(data);

// console.log(newdata);

// let str = json.stringify(obj);

// let newobj = json.parse(str);

// console.log(obj);

// console.log(newobj);

// newobj.arr.push(88);

// console.log(obj);

// console.log(newobj);

// obj.friend.*** = '女';

// console.log(obj);

// console.log(newobj);

JS實現深拷貝 深轉殖 和淺拷貝 淺轉殖

淺拷貝 只複製物件的基本型別,對於引用型別,只是轉殖位址 包含的內嵌的物件或陣列,不再複製副本 引用型別,只是轉殖位址,那麼原物件修改,轉殖後的新物件也會跟著變化,轉殖不徹底 陣列的array.from 方法就是實現的淺拷貝 物件的object.assign 方法也是實現的淺拷貝 深拷貝 複製物件的...

C 淺轉殖與深轉殖(淺拷貝與深拷貝)

介紹 1 淺轉殖 在淺轉殖中,如果原型物件的成員變數是值型別,將複製乙份給轉殖物件 如果原型物件的成員變數是引用型別,則將引用物件的位址複製乙份給轉殖物件,也就是說原型物件和轉殖物件的成員變數指向相同的記憶體位址。簡單來說,在淺轉殖中,當物件被複製時只複製它本身和其中包含的值型別的成員變數,而引用型...

Java 轉殖,淺拷貝,深拷貝

當使用 賦值引用型別的時候,其實是直接賦值該物件的位址,本質還是乙個物件。而轉殖則是完全創造乙個新的物件出來,有自己的新位址,只是初始化的資料相同。轉殖屬於淺拷貝。person p1 newperson tom 11 person p2 p1 person p3 person p1.clone sy...