首页 > 编程知识 正文

JS深克隆,js对象的深度克隆

时间:2023-05-06 14:33:15 阅读:230182 作者:312

js有六种数据类型:五种基本数据类型:String、Number、Boolean、Undefined、Null 和一种复杂数据类型(Object)。typeof 返回的数据类型: String、Number、Boolean、Undefined、Object、Function //1.定义检测数据类型的功能函数 function checkType(target) { return Object.prototype.toString.call(target).slice(8, -1); } //2.实现深度克隆 function clone(target) { let result; let targetType = checkType(target); if (targetType === 'Object') { result = {}; } else if (targetType === 'Array') { result = []; }else { return target; } //3.遍历目标数据 for (let i in target) { let value = target[i]; //4.判断目标结构里的每一值是否存在对象/数组 if(checkType(value) === 'Object'||checkType(value) === 'Array'){ //对象或者数组里嵌套了对象或者数组 //5.继续遍历获取到的value值 result[i] = clone(value); }else { result[i] = value; } } return result;; } let arr3 = [1,2,3,{ userName:'xsx', age:18, wife:['wife1','wife2','wife3'], success:function () { console.log('okok') } }] let arr4 = clone(arr3); arr4[3].userName = 'LY'; console.log(arr3); console.log(arr4);

效果:

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。