Hacker News new | ask | show | jobs
by WorldMaker 3432 days ago
It's a hack, but `JSON.parse(JSON.stringify(obj))` is a relatively performant deep clone.

Very few languages that I know have deep cloning outside of some sort of serialization hack anyway (C#'s deep cloning is a reuse of/leftover from binary marshalling), so this is roughly par for the course, so far as I'm aware.

1 comments

> is a relatively performant deep clone

Relatively short, but IMO not relatively performant. All the JSON encoding/decoding takes its toll.

Relative to most purpose built deep clone libraries I've tried and most manual deep clones I've seen tried that use some combination of DFS and Object.assign.

Obviously YMMV, and your performance needs likely differ from my own.

(Personally, at this point I try to use immutability [with ImmutableJS or friends] over deep cloning, but sometimes a deep clone is still handy.)