标签:实现 obj let span prot func strong 举例 UNC
一、深浅拷贝
在使用JS对数组或者object进行操作的时候,如果只是简单的将它赋予其他变量,那么只要更改其中的任何一个,然后其他的也会跟着改变
举例说明:
let arr = [1, 2, 3] let arr2 = arr arr[0] = 3 console.log(arr[0])//输出3 console.log(arr2[0])//输出3 let obj = { name: ‘obj‘ } let obj2 = obj obj2.name=‘obj2‘ console.log(obj.name)//输出obj2 console.log(obj2.name)//输出obj2
解决思路:创建一个新的对象(数组)使用遍历的方法把原有的数据加到新的对象(数组)里面
解决代码:
function deepclone(obj){ let data if(Object.prototype.toString.call(obj)===‘[object Array]‘){ data=[] for (let index = 0; index < obj.length; index++) { data.push(deepclone(obj[index])) } }else if(Object.prototype.toString.call(obj)===‘[object Object]‘){ data={} for(let key in obj){ data[key]=deepclone(obj[key]) } }else { return obj } return data }
以上测试代码不严谨,但是懒啊,大家如果发现问题可以留言,一起学习共同进步 哈哈哈哈哈哈哈~~~~~!!!
标签:实现 obj let span prot func strong 举例 UNC
原文地址:https://www.cnblogs.com/shucaige/p/9174491.html