首页 > 编程知识 正文

js深拷贝和浅拷贝概念,什么是深拷贝和浅拷贝

时间:2023-05-05 08:11:02 阅读:201919 作者:3570

这篇文章写得很好:

https://www.cnblogs.com/echolun/p/7889848.html

 

总结:1.深拷贝浅拷贝只有在拷贝引用类型的时候才有这个概念。2在实际工作中,深拷贝的考虑是无处不在的,在拷贝对象的时候,一般无论目前是一层引用,还是引用里面还有引用,都直接用深拷贝。3.

JSON.stringify,JSON.parse这种方法使用起来很简单。对比直接写deepClone的方法,哪种更好?目前暂时不清楚。有更多简介的欢迎留言啊。

深拷贝方法:深拷贝性能消耗比较大,比较少用

var deepCopy = function (extendObj) { if (typeof extendObj !== 'object' || extendObj === null) { return extendObj; } else { var newObj = extendObj.constructor === Array ? [] : {} if (JSON) { newObj = JSON.parse(JSON.stringify(extendObj)); } else { for (let key in extendObj) { if (extendObj.hasOwnProperty(key)) { newObj[key] = typeof extendObj[key] === 'object' ? deepCopy(extendObj[key]) : extendObj[key]; } } } } return newObj;};

浅拷贝:实际项目中,经常用到的就是浅拷贝

function easyCopy(extendObj) { if (typeof extendObj !== 'object' || extendObj === null) { return extendObj; }else { var tempObj = obj.constructor === 'Array'? [] : {} if(tempObj == []){ for (let i = 0,len = obj.length; i < len; i++) { tempObj[i] = obj[i] } }else { for (let key in obj) { if (obj.hasOwnProperty(key)) { tempObj[key] = obj[key] } } } } return tempObj}

 

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