When using _.extend/_.assign or _.merge, you will modify the destination object.
object1 = { foo: 23, bar: 42 }
object2 = { bar: 99 }
_.extend(object1, object2) // => { foo: 23, bar: 99 }
object1 // => { foo: 23, bar: 99 }
If you do not want to do that, simply extend into a new object:
object1 = { foo: 23, bar: 42 }
object2 = { bar: 99 }
_.extend({}, object1, object2) // => { foo: 23, bar: 99 }
object1 // => { foo: 23, bar: 42 }
Note how our _.extend statement receives {} as its first argument.
Posted by Arne Hartherz to makandra dev (2014-12-09 10:22)