什么是浅拷贝?如何实现?什么是深拷贝?如何实现?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

什么是浅拷贝?如何实现?什么是深拷贝?如何实现?

前端问答 2019-11-24 19:51:11 379

什么是浅拷贝?如何实现?什么是深拷贝?如何实现?


【精品问答】前端面试手册

【精品问答】前端面试手册之JavaScript篇

深拷贝浅拷贝 什么是深拷贝 什么是浅拷贝
分享到
取消 提交回答
全部回答(1)
  • 前端问答
    2019-11-25 07:48:04

    浅拷贝:按字面意思理解即可,即属性值浅层的拷贝,当对象嵌套对象时就不能解决问题了。

    浅拷贝的方式:

    • Object.assign()
    let a = {
      age: 1
    }
    let b = Object.assign({}, a)
    a.age = 2
    console.log(b.age) // 1
    
    • 展开运算符...
    let a = {
      age: 1
    }
    let b = { ...a }
    a.age = 2
    console.log(b.age) // 1
    

    深拷贝:即属性深层次的拷贝。

    实现方式:JSON.parse(JSON.stringify(object))

    但是这种方法有局限性:

    • 会忽略undefined
    • 会忽略symbol
    • 不能序列化函数
    • 不能解决循环引用的对象

    实现一个可拷贝内部setget等方法的深拷贝?

    1 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

相似问题
最新问题
推荐课程