深拷贝和浅拷贝

深拷贝

JSON.parse(JSON.stringfy(data))此方式对象的原型没办法拷贝。需要使用递归来实现功能。

复制代码
function deepClone(obj) {
   let objClone = Array.isArray(obj) ? [] : {}
   if( obj && typeof obj === 'object' ) {
      for( let key in obj ) {
         if(obj.hasOwnProperty(key)){
           if( obj[key] && typeof obj[key] === 'object') {
               objClone[key] = deepClone(obj[key])
             } else{
                objClone[key] = obj[key]
              }
         }
      }
   }
   return objClone;
}
复制代码

 

常见浅拷贝:

1.   Object.assgin()

2.   ...   (扩展运算符

3.   Array.prototype.concat

4.   Array.prototype.slice

 

posted @   过眼云烟~  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示