轉殖其實就是拷貝 就是複製 這是主要是針對引用資料型別來說的 也就是說在底層儲存的時候 使用堆疊儲存的
我們主要針對的物件是 陣列 物件 因為只有他們才是引用型別 堆疊空間儲存
拷貝涉及到兩種拷貝
淺拷貝指的是 我們在拷貝被物件的時候 只是拷貝物件的位址 不是拷貝儲存
等同於給乙個人去兩個名字 那麼當乙個發生改變的時候 另乙個也會收到影響
// 淺拷貝
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...