Normally when you create copies of objects in JS you end up with a shallow copy, where nested objects are copied by reference. Here’s how to make a deep clone.
Cloning Objects in JavaScript Part 2 – a deeper dive

Normally when you create copies of objects in JS you end up with a shallow copy, where nested objects are copied by reference. Here’s how to make a deep clone.
The this keyword in JavaScript points to different objects depending on the context it is used in. How does it change? Let’s find out!
It’s pretty easy to make an object in JavaScript once you know the syntax, but if you want to make more than one of the same type of object, it’s better to do it from some kind of blueprint. This post is all about factory functions!
In Javascript, assigning an object to another variable won’t create a copy of that object. Here are 3 methods that will successfully clone a JS object.