ES6 淺拷貝和深拷貝

2021-10-23 16:05:43 字數 757 閱讀 6260

1.深拷貝:是指修改拷貝的新變數不會改變原有變數的值,新變數與原有變數指向不同的記憶體位址

//基本資料型別一般是深拷貝,修改b的值不會影響a

let a=1

let b=a

b = 2

console.log(a, b) //1 2

2.淺拷貝:是指修改拷貝的新變數改變原有變數的值,新變數與原有變數指向相同的記憶體位址

let obj1=

let obj2=obj1

obj2.name =

'min'

console.log(obj1,obj2) //obj1的name:'min'

3.object.assign()拷貝是指淺拷貝

let obj1=

let obj2=

let obj3=object.assign(obj1,obj2) //obj3

console.log(obj3) //

obj3.name=

'xiao' //obj3的改變使得obj1.name=

'xiao'

console.log(obj1) //

console.log(obj2) //

es6 物件深拷貝和淺拷貝

簡介 在專案中,為了不影響原有資料,在運算元據時,經常需要深拷貝乙個物件,在開發過程中,實踐得出。const object1 const object2 object.assign object1 console.log object2 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 新增的方法 深拷貝和錢拷貝

淺拷貝 物件或陣列 直接用等號賦值的就是淺拷貝,乙個發生改變,另乙個也會跟著發生改變,他只是指向另乙個位址 例子 var obj1 var obj2 obj1 console.log obj1 console.log obj2 obj1.name 李四 console.log obj2 var ar...