function mcopy() {
  let zargs = _.toArray(arguments)
  zargs.unshift({})
  return _.merge.apply(_, zargs)
}
function mcopy() {
  let zargs = _.toArray(arguments)
  zargs.unshift({})
  return _.merge.apply(_, zargs)
}
function mcopy ( ) { let zargs = _ . toArray ( arguments ) zargs . unshift ( { } ) return _ . merge . apply ( _ , zargs ) }
same as _.merge but does not alter first arg object merge WILL NOT overwrite undefined values (from right to left)
same as _ . merge but does not alter first arg object merge WILL NOT overwrite undefined values ( from right to left )