js 深度克隆变量

一维变量

let objs = obj.assign({},o);

二维到多维

let deepCopy = ( obj , cache = [] ) => {
  if( obj === null || typeof obj !== 'object' ){
    return obj
  }
  const hit = find( cache , c => c.original === obj )
  if( hit ){
    return hit.copy 
  }
  const copy = Array.isArray( obj ) ? [] : {}
  cache.push[{
    original : obj,
    copy
  }]
  Object.keys( obj ).forEach( key => {
    copy[ key ] = deepCopy( obj[ key] , cache )
  })
  return copy
}

posted @ 2022-03-29 14:38  lambertlt  阅读(64)  评论(0编辑  收藏  举报