deepClone.js 598 B

123456789101112131415161718192021222324252627282930
  1. // 对象深度克隆
  2. function deepClone(object = {}) {
  3. var o, i, j, k;
  4. if (typeof(object) !== "object" || object === null) return object;
  5. if (object instanceof Array) {
  6. o = [];
  7. i = 0;
  8. j = object.length;
  9. for (; i < j; i++) {
  10. if (typeof(object[i]) === "object" && object[i] != null) {
  11. o[i] = deepClone(object[i]);
  12. } else {
  13. o[i] = object[i];
  14. }
  15. }
  16. } else {
  17. o = {};
  18. for (i in object) {
  19. if (typeof(object[i]) === "object" && object[i] !== null) {
  20. o[i] = deepClone(object[i]);
  21. } else {
  22. o[i] = object[i];
  23. }
  24. }
  25. }
  26. return o;
  27. }
  28. export default deepClone;