首页 > 其他 > 详细

深克隆与浅克隆

时间:2021-03-09 09:24:55      阅读:18      评论:0      收藏:0      [点我收藏+]

浅克隆

  • 直接将存储在栈中的值赋值给对应变量,如果是基本数据类型,则直接赋值对应的值,如果是引用类型,则赋值的是地址
  const a = (obj) => {
    let qObj = {}
    for (let i in obj) {
        qObj[i] = obj[i]
    }
    return qObj;
  }

深克隆

  • 就是把数据赋值给对应的变量,从而产生一个与源数据不相干的新数据(数据地址已变化)。深拷贝,是拷贝对象各个层级的属性
  const b = (obj) => {
    if (typeof obj === ‘object‘) {
      var sObj = obj.constructor === Array ? [] : {};
      for (var i in obj) {
          sObj[i] = typeof (obj[i]) === ‘object‘ ? b(obj[i]) : obj[i];
      }
    }else {
        var sObj = obj;
    }
  }

深克隆与浅克隆

原文:https://www.cnblogs.com/brosky/p/14498092.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!