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

【JavaScript】深拷贝

时间:2023-03-27 10:34:41 JavaScript

完整可运行代码constoldObj={name:'tao',age:20,color:['orange','green','blue'],friend:{name:'gua'},fn:function(){console.log(1)}}functiondeepClone(obj){//判断是不是数组或对象if(typeofobj!=='object'||obj===null){returnobj}letresif(objinstanceofArray){res=[]}else{res={}}for(letkinobj){//过滤掉obj原型上的属性if(obj.hasOwnProperty(k)){res[k]=deepClone(obj[k])}}returnres}constnewObj=deepClone(oldObj)newObj.friend.name='taotao'console.log(oldObj,newObj)newObj.fn()