+ 1
What is Shallow cloning or merging objects
In ES6
2 ответов
+ 2
Shallow cloning means the variables value is stored in the same location. Merging objects means to make two objects a single object using merge() method
+ 2
An example:
let a = { info: { name: "joe" } }
now let's copy `a`, by making a new object that contains a.x:
let b = { info: a.info } // or alternatively
let b = { ...a }
That's a shallow copy. What does that mean?
Consider
b.info.name = "mary";
What happened to `a`?
console.log(a);
>>> { info: { name: "mary" } }
So changing b.info.name changed a.info.name. That's because a.info and b.info point to the same object.
But check this:
b.info = "not available"
console.log(a);
>>> { info: { name: "mary" } }
So that did not change a.info because we pointed b.info to another object.
And that's it, when you do something like
b = { ...a }
in ES6, it copies the object, but only "one layer deep".
Try it out in the code playground to wrap your head around it.
I see you did the C++ course, if you know about pointers this should make a lot more sense.