• 技术文章 >Web开发 >JavaScript

    js如何深拷贝一个对象

    宋雪维宋雪维2021-01-11 15:08:04原创2741

    JavaScript中,数据类型有原始类型和对象类型两种类型,其中如果想要对对象进行简单地复制很简单,但是当要复制的对象中存在某一个属性的值类型是对象或者数组时,就不能进行简单的复制,要对对象进行深拷贝操作。本文介绍js深拷贝对象的方法:1、利用json对象深拷贝对象;2、利用递归的方式深拷贝对象;3、利用ES6对象扩展运算符(…)深拷贝对象。

    方法一:利用json对象深拷贝对象

    1

    2

    3

    4

    5

    6

    var obj = {

      name: 'FungLeo',

      sex: 'man',

      old: '18'

    }

    var obj2 = JSON.parse(JSON.stringify(obj))

    方法二:利用递归的方式深拷贝对象

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    function deepCopy(s) {

        const target = {}

        for (let k in s) {

          if (typeof s[k] == 'object') {

            d[k] = deepCopy(s[k])

          } else {

            d[k] = s[k]

          }

        }

        return target

      }

      console.log(deepCopy(a));

    方法三:利用ES6对象扩展运算符(…)深拷贝对象

    1

    2

    3

    4

    5

    6

    7

    8

    9

    const obj = {

            name: 'ha',

            age: 10

        }

        const obj2 = {

            obj: {

                ...obj

            }

        }

    以上就是js深拷贝对象的方法,大家可以根据自己的需求选择合适的方法哦~更多js学习推荐:js教程

    专题推荐:js深拷贝对象
    上一篇:js中slice是深拷贝还是浅拷贝 下一篇:js递归实现深拷贝

    相关文章推荐

    • 如何使用python实现项目进度显示?• python中的win32com库是什么?• python如何实现工作表合并?• python中如何实现搜索引擎功能?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网