4 ms·
Exactly the same as the original is a shallow copy. Deep copy roughly means "If I do `dst = deepcopy(src)`, modifying anything in the world I can reach through
by bcoates 8y ago
Exactly the same as the original is a shallow copy.
Deep copy roughly means "If I do `dst = deepcopy(src)`, modifying anything in the world I can reach through a reference from dst should have no side effect visible through src" which is a reasonable thing to ask in some special cases (a tree of plain old javascript values, a DOM node) but not reasonable in others (a database connection object, a file descriptor, a user-id)
Like, what should a deep copy function do if it reaches a reference to the global object? or a function that closes over some references in the object being copied?
The answer is always "it depends on what the object will be used for later and what specific behavior you want"
- deleted 8y ago[deleted]