Spread also can creates object copies and overwriting properties on the fly!
var obj = {
name: 'Barbara',
age: 29,
car: 'Honda'
};
var newObj = {
...obj,
name: 'Kasia',
pet: 'dog'
};
console.log(newObj); //{name: "Kasia", age: 29, car: "Honda", pet: "dog"}
console.log(obj); //{name: "Barbara", age: 29, car: "Honda"}
// deep nested merging object
const data = {
firstLevel: {
name: 'level 1',
secondLevel: {
name: 'level 2',
}
}
};
const merged = {...data, firstLevel: {...data.firstLevel, secondLevel: {...data.firstLevel.secondLevel, name: `I'm a switched level!`}}}