title: Ecma6, Object.assign doesn't do a deep copy
body: <pre><code>dst = { "a" : 1}
  src = { "edf" : {"zyx" : "right"}}
  Object.assign(dst, src)
  src.edf.zyx = "wrong"
  console.log(dst["edf"]["zyx"])
  </code></pre>
  
  <p>I expect to see <code>'right'</code> as the output but it prints <code>'wrong'</code>.</p>
  
  <p>It means, <code>Object.assign</code> has not done a deep copy of complex objects from source to destination. How can i do deep copy?</p>
  
  <p>Note: i am aware of <code>lodash.deepClone</code>, but i am trying to avoid outside frameworks</p>