美文网首页
JavaScript深度拷贝

JavaScript深度拷贝

作者: 2分_08b6 | 来源:发表于2019-03-06 14:11 被阅读0次

经过验证,可以以后直接拿着使用的使用

function cloneDeep (source) {
  if (!isObject(source)) {
    return source;
  }
  var target = Array.isArray(source) ? [] : {};
  for (var key in source) {
    if (Object.prototype.hasOwnProperty.call(source, key)) {
      if (isObject(source[key])) {
        target[key] = cloneDeep2(source[key]);
      } else {
        target[key] = source[key];
      }
    }
  }
  return target;
}

验证

// 测试用例
var a = {
  name: "muyiy",
  book: {
      title: "You Don't Know JS",
      price: "45"
  },
  a1: undefined,
  a2: null,
  a3: 123
}
var arr = [
  {
    a: 123,
    c: {v: 1}
  },
  {
    a: 456,
    c: {v: 2}
  },
];
var b = cloneDeep(a);
var d = cloneDeep(arr);
a.name = 'i am s';
a.book.price = 1000;
console.log('b', b);
console.log('d', d);

相关文章

  • JavaScript深度拷贝

    经过验证,可以以后直接拿着使用的使用 验证

  • 什么是 JavaScript 深度拷贝

    前言: 面试的时候碰到了这么个问题,在这里总结一下。什么是 Javacript 深度拷贝,既然有深度拷贝,那有没有...

  • 什么是 JavaScript 深度拷贝

    前言:面试的时候碰到了这么个问题,在这里总结一下。什么是 Javacript 深度拷贝,既然有深度拷贝,那有没有浅...

  • 浅拷贝和深拷贝

    本文参考:JavaScript中的浅拷贝和深拷贝js 深拷贝 vs 浅拷贝深入剖析 JavaScript 的深复制...

  • 深拷贝、浅拷贝

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝...

  • 面试题整理

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝...

  • iOS面试基础一

    #父类实现深拷贝时,子类如何实现深度拷贝.父类没有实现深拷贝时,子类如何实现深度拷贝.# <(1)深拷贝同浅拷贝的...

  • 深入理解JavaScript中的堆与栈 、浅拷贝与深拷贝

    JavaScript中的浅拷贝与深拷贝 学了这么长时间的JavaScript想必大家对浅拷贝和深拷贝还不太熟悉吧,...

  • 0. iOS面试题基础篇

    1. 父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 1.1 深拷贝同浅拷贝...

  • iOS基础知识点01

    1. 父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 1.1 深拷贝同浅拷贝...

网友评论

      本文标题:JavaScript深度拷贝

      本文链接:https://www.haomeiwen.com/subject/ilbtpqtx.html