当前位置: 首页 > article >正文

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


http://www.kler.cn/a/580172.html

相关文章:

  • 数据库1-2章
  • 【商城实战(18)】后台管理系统基础搭建:从0到1构建电商中枢
  • C++ 算法竞赛STL以及常见模板
  • 优选算法系列(1. 双指针_上)
  • DICOM医学影像脱敏技术应用的重要性及其实现方法详解
  • [Pytorch报错问题解决]AttributeError: ‘nn.Sequential‘ object has no attribute ‘append‘
  • Math 类的核心 API
  • BERT(Bidirectional Encoder Representations from Transformers)的序列分类模型,简单学习记录
  • 【算法】图论 —— SPFA 算法 python
  • 集合知识点
  • 《探索微观世界的钥匙:量子》
  • Manus:成为AI Agent领域的标杆
  • 大语言模型-01-语言模型发展历程-02-从神经网络到ELMo
  • go 标准库包学习笔记
  • 【数据集】社区天气资讯网络CoWIN-香港小时尺度气象数据(含MATLAB处理代码)
  • 【编程题】7-5 堆中的路径
  • 前端HTML转word文档,绝对有效!!!
  • SpreadVue实现内置excel在线编辑并保存为后端可以接受的json格式
  • 案例分析:安防5G低代码开发网关如何提升城市监控效率
  • 算法与数据结构(两数相加)