美文网首页
javascript的深拷贝和浅拷贝

javascript的深拷贝和浅拷贝

作者: 琴先森的博客 | 来源:发表于2019-02-18 19:40 被阅读0次

    如何区分深拷贝和浅拷贝:简单来说就是假设B复制了,当修改A时看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。

    实现深拷贝的方法

    1.借用JSON对象的parse和stringfy。

    2.借用JQ的extend方法。

    $.extend([deep],target,object1[,objectN])

    deep表示是否是深拷贝,为true为深拷贝,为false则为浅拷贝

    target object类型 目标对象,其他对象的成员属性将被附加到该对象上

    object1 objectN可选。Object类型第一个及第N个被合并的对象

    3.使用Object.create()方法

    直接使用var newObj = Object.create(oldObj),可以达到深拷贝的效果。

    4.Object.assign()拷贝

    当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,此方法在二级属性以后就是浅拷贝。

    5.lodash函数库实现深拷贝

    lodash.cloneDeep()

    相关文章

      网友评论

          本文标题:javascript的深拷贝和浅拷贝

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