es6 物件深拷貝和淺拷貝

2021-08-29 20:11:59 字數 540 閱讀 3690

簡介:在專案中,為了不影響原有資料,在運算元據時,經常需要深拷貝乙個物件,在開發過程中,實踐得出。

const object1 = ;

const object2 = object.assign(, object1);

console.log(object2);

> object

這是淺拷貝,返回的不是乙個新物件,而是把乙個或多個源物件新增到目標物件

let object1 = ;

let object2 = ;

object1.a=11;

console.log(object2);

> object

彷彿好像深拷貝,但是如果object1巢狀了一層物件,就發現會互相影響了。

let object1 = };

let object2 = ;

object1.c.a=11;

> object }

所以這也是淺拷貝

ES6 物件解構賦值(淺拷貝 VS 深拷貝)

物件的擴充套件運算子 用於取出引數物件的所有可遍歷屬性,拷貝到當前物件之中。let aa let bb console.log bb 擴充套件運算子 可以用於合併兩個物件 let aa let bb let cc 等同於 let cc object.assign aa,bb console.log ...

ES6 淺拷貝和深拷貝

1.深拷貝 是指修改拷貝的新變數不會改變原有變數的值,新變數與原有變數指向不同的記憶體位址 基本資料型別一般是深拷貝,修改b的值不會影響a let a 1 let b a b 2 console.log a,b 1 22.淺拷貝 是指修改拷貝的新變數會改變原有變數的值,新變數與原有變數指向相同的記憶...

C 物件導向 6 深拷貝和淺拷貝

前面一直在學習建構函式,其中拷貝構造我們帶出了值傳遞,拷貝乙個物件等概念。這篇來學習一下c 的乙個非常容易面試遇到的問題,也就是學習過程中的乙個坑。什麼是淺拷貝和深拷貝,兩者的區別是什麼。淺拷貝 簡單的賦值拷貝操作 前面我們學習的拷貝建構函式就是淺拷貝 根據前面的 我們把point換成person類...