深拷贝与浅拷贝

如果你在开发中,发现一个变量明明没有被修改过,它的值却变了,那你可能中了深浅拷贝的毒。

浅拷贝只是做了一次引用,并没有在内存中另外开辟一块地址存放新的变量。而深拷贝则在内存中开辟了一块新的地址用于存放复制的对象。

  • $.extends({}, obj);
  • _.deepClone(obj);
  • JSON.parse(JSON.stringify(obj))
  • Object.assgin({}, obj);
  • arr.slice()