美文网首页前端路上不辛苦
对象和数组的深浅拷贝

对象和数组的深浅拷贝

作者: 小白IT | 来源:发表于2020-08-10 15:12 被阅读0次

    1、对象的浅拷贝

    (1)对象的合并 Object.assign(),第一个参数必须是个空对象

    (2)对象的解构赋值

    2、对象深拷贝

    (1)利用jQuery的$.extend方法

    (2)通过转换字符串即内置的JSON对象来转换拷贝

    弊端:这种简单粗暴的方法有其局限性,当值为undefined、function、symbol 会在转换过程中被忽略

    (3)数组或对象深拷贝(利用循环和递归)

    3、数组浅拷贝

    (1)利用数组的 slice 方法或者 concat 方法

    4、数组深拷贝

            与对象深拷贝方法相同

    (1)通过转换字符串即内置的JSON对象来转换拷贝

    弊端:这种简单粗暴的方法有其局限性,当值为undefined、function、symbol 会在转换过程中被忽略

    (2)数组或对象深拷贝(利用循环和递归)(但是key为null或undefined时不能拷贝)

    (3) 原理也比较好理解,他是将原数组中抽离部分出来形成一个新数组。我们只要设置为抽离全部,即可完成数组的深拷贝

    var arr = [1,2,3,4,5]

    vararr2 = arr.slice(0)

    arr[2] =5

    console.log(arr)

    console.log(arr2)

    相关文章

      网友评论

        本文标题:对象和数组的深浅拷贝

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