1. 程式人生 > 其它 >es6擴充套件運算子深淺拷貝

es6擴充套件運算子深淺拷貝

如果陣列或物件中的元素只是簡單型別,一層物件或者陣列,就是深拷貝

如:

let staff1 = {name: 'xiaohong',age: 27};
let staff2 = {...staff};
staff2.name = 'xiaoming'
staff1 : {name: 'xiaohong',age: 27}
staff2:{name: "xiaoming", age: 27}

如果陣列或物件中的元素是複雜型別,就是淺拷貝

let aa = {
age: 18,
name: 'aaa',
    address: {
        city: "hangzhou"
    }
}

let bb = {...aa}
bb.address.city = 'shanghai'


aa: {
        age: 18,
        name: 'aaa',
        address: {
            city: 'shanghai'
        }
    }

bb: {
        age: 18,
        name: 'aaa',
        address: {
            city: 'shanghai'
        }
    }

擴充套件運算子深複製

let cc = {
age: 18,
name: 'aaa',
    address: {
        city: "hangzhou"
    }
}
let dd = {
    ...cc,
    address: {
         ...cc.address   
    }  
}
dd.address.city = 'shanghai'


cc: {
        age: 18,
        name: 'aaa',
        address: {
            city: 'hangzhou'
        }
    }

dd: {
        age: 
18, name: 'aaa', address: { city: 'shanghai' } }