JSON.parse(JSON.stringify())深拷贝不会复制函数

  1. 深拷贝
    是指创建一个新对象,并递归地复制原对象中所有层级的属性和值,从而确保新对象与原对象完全独立

    深拷贝的实现方法 :

    1. 使用 `JSON.parse(JSON.stringify())
      函数会被忽略复制,比如,下面的对象的formatter函数深拷贝以后就不在了

      复制代码
       {
         name: "笔数",
         type: "value",
         axisLabel: {
           formatter: function (value) {
             console.log('value: ', value);
             return value + 'kg';
           }
         }
       },
  • JSON.parse(JSON.stringify())会导致:

  • 无法处理函数:函数会被忽略。

  • 无法处理特殊对象类型 :如 DateRegExpMapSet 等。

  • 无法处理循环引用:会抛出错误。

  • 丢失原型链 :新对象的原型链会被重置为 Object.prototype

  1. 浅拷贝
    只复制对象的第一层属性。如果属性值是对象(如 address),它会复制该属性值的对象的引用,而不是对象的内容

    复制代码
    const original = {
      age: 25,
      address: {
        city: "Moe",
      }
    };
    
    
    shallowCopy.address.street = "New Street";
    console.log(original.address.street); // 输出:New Street
相关推荐
Moment几秒前
NestJS 在 2025 年:对于后端开发者仍然值得吗 😕😕😕
前端·后端·github
热心市民小岳1 分钟前
Konva.js 实现 腾讯文档 多维表格
前端·javascript
砺能2 分钟前
uniapp生成的app添加操作日志
前端·uni-app
小Dno17 分钟前
diff算法理解第一篇
前端
文心快码BaiduComate7 分钟前
文心快码实测Markdown排版工具开发
前端·后端·程序员
九十一7 分钟前
闭包那点事
javascript
沐知全栈开发7 分钟前
PHP MySQL 插入数据详解
开发语言
杨超越luckly10 分钟前
HTML应用指南:利用GET请求获取全国沃尔沃门店位置信息
前端·arcgis·html·数据可视化·门店数据
渣哥15 分钟前
原文来自于:[https://zha-ge.cn/java/128](https://zha-ge.cn/java/128)
javascript·后端·面试
渣哥16 分钟前
项目写得再多也没用!Spring Bean 的核心概念要是没懂,迟早踩坑
javascript·后端·面试