美文网首页前端小知识
浅拷贝、深拷贝的方法和区别

浅拷贝、深拷贝的方法和区别

作者: 砚婉儿 | 来源:发表于2021-04-15 11:41 被阅读0次

浅拷贝:B复制了A,当修改A时,B跟着变。
深拷贝:B复制了A,当修改A时,B没变化。

浅拷贝:


// 方法一:循环遍历

function simpleClone(objNew) {
    var obj = {}
    for (var i in objNew) {
      obj[i] = objNew[i]
    }
    return obj
}

循环遍历

// 方法二:Object.create()

var objCopy = Object.create(obj)  // 拷贝到了_proto_属性里

拷贝到了_proto_属性里

深拷贝:(方法二比较常用)


// 方法一:循环遍历
function deepClone(tartgetObj, endObj) {
    var obj = endObj || {}
    for (var key in targetObj) {
        if(typeof targetObj[key] === 'object') {
            obj[key] = tartgetObj.construtor === Array ? [] : Object.create(null)
            deepClone(tartgetObj[key], obj[key])
        } else {
            obj[key] = targetObj[key]
        }
    }
    return obj
}


// 方法二:JSON.stringify() 和 JSON.parse()
var copyObj = JSON.parse(JSON.stringify(targetObj))  // object -> string -> object

深拷贝

相关文章

  • copy和mutableCopy的区别

    copy和mutableCopy的区别 深拷贝和浅拷贝的区别 在OC中对象的拷贝方式有两种:深拷贝和浅拷贝.浅拷贝...

  • 深拷贝和浅拷贝

    干货!深拷贝和浅拷贝的区别 深拷贝才是拷贝,浅拷贝就是Retain Copy与Retain的区别 Copy: 根据...

  • iOS--拷贝相关题

    1、什么是深拷贝什么是浅拷贝?浅拷贝和深拷贝的区别 * 浅拷贝(shallow copy):指针拷贝,对于被拷贝对...

  • python的浅拷贝和深拷贝

    对于不可变类型,浅拷贝和深拷贝没有区别 对于不可变类型 赋值 浅拷贝 深拷贝

  • JavaScript的深拷贝和浅拷贝

    原文 博客原文 大纲 前言1、对深拷贝和浅拷贝的初步认识2、深拷贝和浅拷贝的区别3、浅拷贝存在的缺陷4、深拷贝的实...

  • 深拷贝和浅拷贝

    1.深拷贝:地址的拷贝 2.浅拷贝:是值得拷贝 深拷贝和浅拷贝的区别 A拷贝B B变A变是浅拷贝 A拷贝B B变A...

  • python(进阶一)

    三范式 GIL 深拷贝与浅拷贝 深拷贝 浅拷贝 跟引用的区别 python基本上如果提供了copy方法都是浅cop...

  • 简述三范式,GIL,浅拷贝与深拷贝

    三范式 GIL 深拷贝与浅拷贝 深拷贝 浅拷贝 跟引用的区别 python基本上如果提供了copy方法都是浅cop...

  • 五、面试总结(五)

    对象 拷贝(clone) 如何实现对象克隆 深拷贝和浅拷贝区别 深拷贝和浅拷贝如何实现激活机制 写clone()方...

  • 深拷贝与浅拷贝

    本文将讲述一下几点 深拷贝与浅拷贝的区别。 深拷贝的常用方法 切记。只有引用类型才存在深拷贝与浅拷贝的问题哦~,基...

网友评论

    本文标题:浅拷贝、深拷贝的方法和区别

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