All this does is do a deep copy, which is a costly operation.<p>I suggest using persistent DS libs like immutable.js. You just let that object loose in the code and not worry about side effects happening on the object you are referencing at some point in the code.<p>Sure, they may have the same overhead, but the idea is that your code doesn't do unnecessary defensive cloning all over the place. Plus, defensive cloning is an eyesore in code. It isn't UI logic, it isn't business logic. It's just technical debt waiting to happen.