JavaScript对象的深拷贝和浅拷贝

本文介绍了JavaScript中对象的深拷贝和浅拷贝方法。通过ES5的`Object.assign`实现浅拷贝,只能拷贝对象的一级属性,深层次属性的变化会影响到原始对象;通过递归函数实现深拷贝,可以完全复制对象及其所有层级的属性。

对象的深拷贝和浅拷贝

// ES5 浅拷贝

Object.assign({}, conf)

只能拷贝一级,深层的源改变,目标也会跟着改变。

// 递归 深拷贝

function deepCopy(des, src) {
  for (var key in src) {
    if(typeof src[key] !== 'object') {
      des[key] = src[key];
    } else {
      des[key] = des[key] || {};
      deepCopy(des[key], src[key]);
    }
  }
  return des;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值