物件的擴充套件運算子(...)用於取出引數物件的所有可遍歷屬性,拷貝到當前物件之中。
let aa =
let bb = ;
console.log(bb); //
擴充套件運算子(...)可以用於合併兩個物件
let aa =
let bb =
let cc = ;
// 等同於:
// let cc = object.assign({}, aa, bb);
console.log(cc); //
在擴充套件運算子後面,加上自定義的屬性,則擴充套件運算子內部的同名屬性會被覆蓋掉。
let aa =
let dd = ;
// 等同於:
// let dd = };
// let dd = object.assign({}, aa, );
console.log(dd); //
一般,在 redux 中修改 state 時,會用解構賦值的方法。
例如,下面肯定是引用賦值:
let aa =
let bb = aa;
bb.age = 22;
console.log(aa.age); // 22
上面, 物件 bb 是 aa 的乙個引用賦值。那麼,如果使用解構賦值得到 bb 呢:
let aa =
let bb = ;
bb.age = 22;
console.log(aa.age); // 18
let aa =
}let bb = ;
bb.address.city = 'shenzhen';
console.log(aa.address.city); // shenzhen
如果像拷貝 aa 中的 city 屬性,可以像下面處理:
let aa =
}let bb =
};bb.address.city = 'shenzhen';
console.log(aa.address.city); // shanghai
es6 物件深拷貝和淺拷貝
簡介 在專案中,為了不影響原有資料,在運算元據時,經常需要深拷貝乙個物件,在開發過程中,實踐得出。const object1 const object2 object.assign object1 console.log object2 object 這是淺拷貝,返回的不是乙個新物件,而是把乙個或多...
ES6 物件的解構賦值
es6的解構賦值,在我看來是提供了乙個整體賦值的方案。包括陣列和物件的整體賦值。基本原則如下 let x,y 1,2 x 1 y 2 let foo aaa bar bbb 但是物件的解構賦值,允許給賦值的變數重新命名。物件的重新命名解構 我自己去的名字,便於理解 其實在給物件進行解構賦值的時候,有...
ES6 物件的解構賦值
物件的解構賦值 解構不僅可以用於陣列,還可以用於物件。let console.log foo aaa console.log bar bbb這裡的foo,bar一定要對應。物件的解構與陣列有乙個重要的不同。陣列的元素是按次序排列的,變數的取值由它的位置決定 而物件的屬性沒有次序,變數必須與屬性同名,...