深拷贝和浅拷贝

深拷贝

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 @ 2022-05-06 17:14  过眼云烟~  阅读(23)  评论(0)    收藏  举报