开发者社区> 问答> 正文

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

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


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

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

展开
收起
前端问答 2019-11-24 19:51:11 1053 0
1 条回答
写回答
取消 提交回答
  • 前端问答小助手

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

    浅拷贝的方式:

    • 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等方法的深拷贝?

    2019-11-25 07:48:04
    赞同 1 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载