The Object.assign() static method copies all enumerable own properties from one or more source objects to a target object. It returns the modified target object.| developer.mozilla.org
A deep copy of an object is a copy whose properties do not share the same references (point to the same underlying values) as those of the source object from which the copy was made. As a result, when you change either the source or the copy, you can be assured you're not causing the other object to change too. That behavior contrasts with the behavior of a shallow copy, in which changes to nested properties in the source or the copy may cause the other object to change too.| developer.mozilla.org
The handler.set() method is a trap for the [[Set]] object internal method, which is used by operations such as using property accessors to set a property's value.| developer.mozilla.org