Skip to content Skip to sidebar Skip to footer

Hard Copy Vs Shallow Copy Javascript

This may be an old question but I'm really curious about the nature of copying objects by reference as an assignment in javascript. Meaning that if var a = {}; var b = a; a.name

Solution 1:

Objects and arrays are treated as references to the same object. If you want to clone the object, there are several ways to do this.

In later browsers, you can do:

var b = Object.assign({}, a);

If you want to go for a library, lodash provides _.clone (and _.cloneDeep):

var b = _.clone(a);

If you don't want to do either of those methods, you can just enumerate through each key and value and assign them to a new object.

Oftentimes it's valuable for them to be treated as references when passing through multiple functions, etc. This isn't the case for primitives like numbers and strings, because that would feel pretty counterintuitive in most cases.

Post a Comment for "Hard Copy Vs Shallow Copy Javascript"