美文网首页学习笔记
JS 实现深拷贝、浅拷贝的几种方法

JS 实现深拷贝、浅拷贝的几种方法

作者: 灬劣徒 | 来源:发表于2021-06-18 16:26 被阅读0次

对象深拷贝

  • 第一种:使用递归的方法实现深拷贝

function deepClone(target) {
  let objClone = Array.isArray(target) ? [] : {}
  if(target && typeof target === 'Ojbect') {
    for(let key in target) {
      if(target[key] && typeof target[key] === 'Object') {
        objClone[key] = deepClone(target[key])  
      } else {
        objClone[key] = target[key]
      }
    }
  }
  return objClone
}

\color{red}{注意:同样适用于数组}

  • 第二种:使用JSON.parse()和JSON.stringify()
    JSON.parse(JSON.stringify(obj))
    \color{red} {注意:无法实现对象中方法的深拷贝}
  • 第三种:使用Object.assign()
    Object.assign({},obj)
    注意:只能深拷贝对象的一级属性,二级属性之后即为浅拷贝

数组的深拷贝

  • 第一种:concat(arr1,arr2)
    \color{red} {注意:只有在数组元素是一维的时候,是深拷贝;一维以上是对值的引用 }
  • 第二种:slice(idx1,idx2)
    ①没有参数的时候,是拷贝数组
    ②一个参数的时候,拷贝从起始位置到数组末尾的元素
    ③两个参数的时候,拷贝从起始位置到 结束位置的元素(不包含结束位置的元素,含头不含尾)
    \color{red}{注意:数组中元素均为一维,是深拷贝;数组中的元素二维以上则是值的引用}

相关文章

  • js浅拷贝深拷贝

    js浅拷贝,深拷贝的简单实现 基础数据 浅拷贝 深拷贝

  • JS 中深拷贝的几种实现方法

    JS 中深拷贝的几种实现方法 1、使用递归的方式实现深拷贝 方法二 2、通过 JSON 对象实现深拷贝 缺点 (1...

  • Javascript中的深拷贝

    JS 中深拷贝的几种实现方法 1、使用递归的方式实现深拷贝 //使用递归的方式实现数组、对象的深拷贝 functi...

  • JS中的深拷贝与浅拷贝

    知乎:js中的深拷贝和浅拷贝? 掘金: js 深拷贝 vs 浅拷贝 前言 首先深拷贝与浅拷贝只针对 Object,...

  • 深拷贝、浅拷贝

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝...

  • 面试题整理

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝...

  • 对象深拷贝和浅拷贝

    浅拷贝 深拷贝 深拷贝的递归方法 深拷贝的JSON方法

  • 2020前端高频面试题总结(附答案)

    [ js基础题 ] 1. new的实现原理是什么? 2. 深拷贝和浅拷贝的区别是什么 深拷贝 浅拷贝 3. bin...

  • JS 实现深拷贝、浅拷贝的几种方法

    对象深拷贝 第一种:使用递归的方法实现深拷贝 第二种:使用JSON.parse()和JSON.stringify(...

  • JS 实现深拷贝、浅拷贝的几种方法

    对象深拷贝 第一种:使用递归的方法实现深拷贝 第二种:使用JSON.parse()和JSON.stringify(...

网友评论

    本文标题:JS 实现深拷贝、浅拷贝的几种方法

    本文链接:https://www.haomeiwen.com/subject/ygokyltx.html