首先,在进行认识深拷贝和浅拷贝之前,我们需要了解到w3关于数据类型的区分
数据类型:
接下来,我们开始了解深拷贝和浅拷贝:
------*深拷贝和浅拷贝是只针对object和array这样的引用数据类型的
1 //定义检测数据类型的功能函数 2 function checkedtype (target) { 3 return object.prototype.tostring.call(target).slice(8, -1) 4 } 5 //实现深度克隆---对象/数组 6 function clone (target) { 7 //判断拷贝的数据类型 8 //初始化变量result 成为最终克隆的数据 9 let result, targettype = checkedtype(target) 10 if (targettype === 'object') { 11 result = {} 12 } else if (targettype === 'array') { 13 result = [] 14 } else { 15 return target 16 } 17 //遍历目标数据 18 for (let i in target) { 19 //获取遍历数据结构的每一项值。 20 let value = target[i] 21 //判断目标结构里的每一值是否存在对象/数组 22 if (checkedtype(value) === 'object' || checkedtype(value) === 'array') { 23 //对象/数组里嵌套了对象/数组 24 //继续遍历获取到value值 25 result[i] = clone(value) 26 } else { 27 //获取到value值是基本的数据类型或者是函数。 28 result[i] = value; 29 } 30 } 31 return result 32 }
如对本文有疑问, 点击进行留言回复!!
微信小程序wx.scanCode扫描条形码,偶尔出现条形码不正确导致查询失败
Android 入门第七讲01-数据存储(数据存储概述,文件存储(raw和asserts目录读写,data/data/包名目录读写,sdcard目录读写),SharedPreferences读写)
vue-axios系列:axios拦截器,配置请求头,配置请求参数
网友评论