深拷贝 二者之间改变互不影响
1 拷贝后二者之间再也不存在共享关系
2 拷贝以后数据类型不能发生改变,也就是须要判断是数组的时候,须要进行单独递归的遍历
3 在继承的时候,咱们经过原型属性实现原型对象属性的继承,在进行深拷贝的时候,咱们首先须要提出原型对象上的属性;经过hasOwnProperty
方法来进行筛选;数组
function deepCopy(params) { if(typeof params !== 'object') { console.log('您输入的不是对象'); return params; } let target = null; if(typeof params === 'object' && params !== null) { target = Array.isArray(params) ? [] : {} for (let key in params) { if(params.hasOwnProperty(key)) { if(typeof params[key] === 'object') { target[key] = deepCopy(params[key]); } else { target[key] = params[key]; } } } } return target; }