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

长沙网站开发微联wordpress文件缓存

长沙网站开发微联,wordpress文件缓存,wordpress分享型主题模板下载,网站推广建议一、区别:像“复印文件” vs “创建副本文件” 1. 浅拷贝(Shallow Copy) 动作:只复制文件的第一页,其他页用“贴标签”指向原文件。结果: 修改第一层属性不影响原对象,但修改嵌套对象会同时改…

一、区别:像“复印文件” vs “创建副本文件”

1. 浅拷贝(Shallow Copy)
  • 动作:只复制文件的第一页,其他页用“贴标签”指向原文件。
  • 结果
    修改第一层属性不影响原对象,但修改嵌套对象会同时改变原对象和拷贝对象。
  • 例子
    const original = { a: 1, b: { c: 2 } };
    const shallowCopy = { ...original }; // 展开运算符(浅拷贝)shallowCopy.a = 100;    // 原对象不变:original.a = 1
    shallowCopy.b.c = 200;  // 原对象也被修改:original.b.c = 200
    
2. 深拷贝(Deep Copy)
  • 动作:把文件每一页都完整复印一份,完全独立。
  • 结果
    修改拷贝对象的任何属性都不会影响原对象。
  • 例子
    const original = { a: 1, b: { c: 2 } };
    const deepCopy = JSON.parse(JSON.stringify(original)); // 深拷贝deepCopy.a = 100;       // 原对象不变:original.a = 1
    deepCopy.b.c = 200;     // 原对象不变:original.b.c = 2
    

二、如何实现深拷贝?

方法1:JSON 序列化(简单但局限)
  • 代码
    function simpleDeepCopy(obj) {return JSON.parse(JSON.stringify(obj));
    }
    
  • 缺点
    • 无法拷贝函数、undefinedSymbol
    • 会丢失 Date 对象(转成字符串)、正则表达式(转成空对象)。
    • 无法处理循环引用(如 obj.self = obj)。

方法2:递归克隆(手动实现完整版)

代码步骤分解

function deepClone(obj, cache = new WeakMap()) {// 1. 处理基本类型和 null/undefinedif (obj === null || typeof obj !== 'object') return obj;// 2. 处理循环引用(避免无限递归)if (cache.has(obj)) return cache.get(obj);// 3. 处理特殊对象类型let clone;if (obj instanceof Date) {clone = new Date(obj); // 克隆日期} else if (obj instanceof RegExp) {clone = new RegExp(obj); // 克隆正则} else if (obj instanceof Map) {clone = new Map(Array.from(obj, ([key, val]) => [key, deepClone(val, cache)])); // 克隆Map} else if (obj instanceof Set) {clone = new Set(Array.from(obj, val => deepClone(val, cache))); // 克隆Set} else if (Array.isArray(obj)) {clone = []; // 克隆数组} else {clone = Object.create(Object.getPrototypeOf(obj)); // 克隆普通对象(保留原型链)}// 4. 缓存当前对象,防止循环引用cache.set(obj, clone);// 5. 递归拷贝所有属性for (const key in obj) {if (obj.hasOwnProperty(key)) {clone[key] = deepClone(obj[key], cache);}}return clone;
}

方法3:使用现成库(推荐实际开发使用)
  • Lodash
    import _ from 'lodash';
    const deepCopy = _.cloneDeep(original);
    
  • 优点:处理了所有边界情况(函数、循环引用、特殊对象等)。

三、不同场景选择建议

场景推荐方法
简单对象(无函数、日期)JSON.parse(JSON.stringify())
复杂对象(含特殊类型)Lodash 的 cloneDeep
需要手动控制递归克隆实现

总结

  • 浅拷贝:只复制表层,嵌套对象共享。
  • 深拷贝:完全独立副本,彻底隔离。
  • 实际开发:优先使用 Lodash 的 cloneDeep,避免重复造轮子!

文章转载自:

http://M7mW5Isk.wptdg.cn
http://DMo5KL3g.wptdg.cn
http://1BmCpSiL.wptdg.cn
http://z39P1n4L.wptdg.cn
http://bidcAQuU.wptdg.cn
http://m2BSIvMn.wptdg.cn
http://oxsEbmyj.wptdg.cn
http://YZkuwcYf.wptdg.cn
http://UhlmuCho.wptdg.cn
http://M4HN5QD9.wptdg.cn
http://KRA37P4m.wptdg.cn
http://Z5JueFlG.wptdg.cn
http://VUv35PXH.wptdg.cn
http://41JRMvuf.wptdg.cn
http://zAeNzgxe.wptdg.cn
http://zg6fd82k.wptdg.cn
http://kbi9PVjY.wptdg.cn
http://wjEzfF00.wptdg.cn
http://uPpKf6Hd.wptdg.cn
http://XJasa6me.wptdg.cn
http://eP5J0sT0.wptdg.cn
http://tkLWJc0y.wptdg.cn
http://p7TMQCNp.wptdg.cn
http://T4lHyfUB.wptdg.cn
http://x4SqsMpq.wptdg.cn
http://UBdKKpIK.wptdg.cn
http://zlCJWKzH.wptdg.cn
http://XgVHCjfI.wptdg.cn
http://ANtk8kmJ.wptdg.cn
http://dYvALZQP.wptdg.cn
http://www.dtcms.com/wzjs/771212.html

相关文章:

  • 网站前端如何做兼职展厅展馆策划设计
  • 单页网站做淘宝客广告文案模板
  • 卡盟网站建设WordPress小程序开发
  • 常州专业做网站公司线上培训课程
  • 王建设的网站seo范畴有哪些
  • 天猫网站是怎么做seo优化的网页设计与网站建设+pdf
  • 怎么做网站交易物流跟踪网站建设
  • 京东网站建设策划书有没有做网页的兼职网站
  • iis架设网站教程网址导航百万字论坛
  • 从零精通网站建设网站设计网站项目流程图
  • 招商加盟的网站应该怎么做石家庄新钥匙建站
  • 网站建设任务执行书在门户网站做产品单页多少钱一天
  • 长沙招聘网58同城招聘发布呼和浩特整站优化
  • 荆门网站建设 金键盘seo站长网
  • 商城网站建设清单苏州相城做网站的
  • 苏州cms模板建站上海发布官网app下载
  • 平台网站模板 优帮云wordpress caller_get_posts
  • 外贸网站建站i小程序代理都是假的
  • 织梦做的网站如何优化好一个网站
  • 有做soho网站的吗珠海集团网站建设报价
  • 成都大丰网站建设例表网企点是干嘛用的
  • 绿色环保材料网站模板下载wps做网站框架
  • 网站建设 贴吧设计开发网站
  • 设计公司网站需要多少钱数据平台
  • 湖南学校网站建设建设电子商务网站所应用的技术
  • 上海设计网站与公司品牌推广方案范文
  • seo网站结构优化招投标网站销售怎么做
  • 网站建设入账哪个科目做网站是通过怎么挣钱
  • 建设监理协会网站建设工程施工范围
  • 网页设计网站模板网站建设网页模板wordpress中文版 显示英文