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

网站设计知识网站域名免费注册

网站设计知识,网站域名免费注册,合肥网站建设网页设计,简单5步 制作wordpress留言板实现对象参数的深拷贝并返回拷贝之后的新对象,因为参数对象和参数对象的每个数据项的数据类型范围仅在数组、普通对象({})、基本数据类型中且无需考虑循环引用问题,所以不需要做过多的数据类型判断,核心步骤有&#xf…

实现对象参数的深拷贝并返回拷贝之后的新对象,因为参数对象和参数对象的每个数据项的数据类型范围仅在数组、普通对象({})、基本数据类型中且无需考虑循环引用问题,所以不需要做过多的数据类型判断,核心步骤有:

  1. 如果对象参数的数据类型不为“object”或为“null”,则直接返回该参数
  2. 根据该参数的数据类型是否为数组创建新对象
  3. 遍历该对象参数,将每一项递归调用该函数本身的返回值赋给新对象
const _sampleDeepClone = target => {if(typeof target === 'object' && target !== null) {const cloneTarget = Array.isArray(target) ? [] : {}for(prop in target) {if(target.hasOwnProperty(prop)) {cloneTarget[prop] = _sampleDeepClone(target[prop])}}return cloneTarget} else {return target}
}

实现对象参数的深拷贝并返回拷贝之后的新对象,因为需要考虑参数对象和参数对象的每个数据项的数据类型可能包括函数、正则、日期、ES6新对象且必须考虑循环引用问题,所以需要引入ES6新对象Map并且详细的判断数据类型,核心步骤有:

  1. 首先判断对象参数是否为“null”,是则返回“null”
  2. 判断对象参数数据类型是否为“object”,不是则返回该参数
  3. 获取到对象参数的构造函数名,判断是否为函数、正则、日期、ES6新对象其中之一,如果是则直接返回通过该参数对象对应的构造函数生成的新实例对象
  4. 当以上条件判断之后函数依然没有结束时继续进行以下操作
  5. 在Map对象中获取当前参数对象,如果能获取到,则说明这里为循环引用并返回Map对象中该参数对象的值
  6. 如果在Map对象中没有获取到对应的值,则保存该参数对象到Map中,作为标记
  7. 根据该参数的数据类型是否为数组创建新对象
  8. 遍历该对象参数,将每一项递归调用该函数本身的返回值赋给新对象
const _completeDeepClone = (target, map = new Map()) => {if(target === null) return targetif(typeof target !== 'object') return targetconst constructor = target.constructorif(/^(Function|RegExp|Date|Map|Set)$/i.test(constructor.name)) return new constructor(target)if(map.get(target)) return map.get(target)map.set(target, true)const cloneTarget = Array.isArray(target) ? [] : {}for(prop in target) {if(target.hasOwnProperty(prop)) {cloneTarget[prop] = _completeDeepClone(target[prop], map)}}return cloneTarget
}
http://www.yayakq.cn/news/414158/

相关文章:

  • 中建豪城建设有限公司网站建设公司网站步骤
  • 同城招聘网站自助建站网站开发string文件
  • 网站开发前台电商设计怎么样
  • 网站建设域名空间做网站的公司搞什么活动
  • 镇江网站优化哪家好营销网站建设平台
  • 网站优化方法湛江搭建做网站在哪里做
  • 推进网站 集约化建设什么软件能创建网站
  • 企业网站建设要多广州专业的网站建设公司
  • 车机油哪个网站做的好在线模版下载网站
  • 莒县网站制作wordpress手机滑动导航
  • 网络广告推广网站新闻cms静态网站模板
  • 网站建设四网合一哪些网站可以找兼职做室内设计
  • 网站对比app还有优势吗今题网免费发布信息网
  • 北京网站优化开户销售平台
  • 网站维护收费广州做网站如何
  • 网站建设添加视频教程黑龙江省建设厅官网查询
  • 如何推销自己的产品seo工程师招聘
  • 怎么在网站投放广告成都少儿编程培训机构
  • 学网页设计哪个培训学校好找南昌seo服务商
  • 电商加盟网站建设wordpress和微信公众号互通
  • 网站搭建公司加盟WordPress评论增加表情
  • 网站运营建设的培训软件开发文档示例
  • 优质的专业网站建设最近时事新闻热点事件
  • 免费的个人网站怎么做做餐饮在环保局网站备案
  • 制作网页网站公司做网站的上市公司
  • 山东装饰公司网站建设公司电白建设局网站
  • 建立个人网站的详细步骤建设银行的官方网站电脑版
  • 管理型网站建设费用明细山东人才招聘信息网官网
  • 巩义网站建设费用软件开发培训机构
  • 做网站推广我们是专业的2020网络公司排名