Nice article. JSON.parse/JSON.stringify is definitely a clean and easy way to copy objects, however I think it is worth mentioning that it is possible to lose type information this way. A good example of this is with Dates. If your object contains dates, JSON.stringify will turn it into a string, and JSON.parse will not turn it back into a date.
If you have a simple object just containing just basic types, like strings and numbers, the json way may be easier, but for any more complex objects, the recursion method is the way to go.