当前位置: 首页 > Web前端 > HTML

js手写deepClone深拷贝

时间:2023-03-28 13:35:38 HTML

背景在实际开发中,经常会用到数据拷贝来处理数据。其实使用JSON.stringify()和JSON.parse()来实现深拷贝是一个非常好的选择。但是当复制的数据是undefined,function(){}等时,复制的会是空的,这时就需要递归复制了。使用JSON实现复制时,注意复制数据,看是否适合使用。下面是手写的简单深拷贝代码/***@paramobj*@descriptiondeepcopy*/exportconstdeepClone=(obj:any)=>{//判断是否需要递归if(typeofobj!=='对象'||obj==null){returnobj;}让结果:任何;if(objinstanceofArray){结果=[];}else{结果={};}for(letkeyinobj){if(obj.hasOwnProperty(key)){result[key]=deepClone(obj[key]);}}returnresult;};exportdefaultdeepClone;