当前位置: 首页> 教育> 锐评 > 企业查询猫_前端面试题2023_友情链接买卖代理_宁波网站建设公司哪家好

企业查询猫_前端面试题2023_友情链接买卖代理_宁波网站建设公司哪家好

时间:2025/7/12 2:48:34来源:https://blog.csdn.net/weixin_45718102/article/details/142835051 浏览次数:0次
企业查询猫_前端面试题2023_友情链接买卖代理_宁波网站建设公司哪家好

#工作中拷贝对象是常有的事,我们需要分清楚深浅拷贝,一般来说要做的都是深拷贝,不然会有关联影响#

解构赋值

es6新语法,简洁是简洁,但是需要注意深拷贝只针对第一层

使用方式:{...obj}

let stu = {name: 'aaa',age: 18,info: {grade: 5,class: 4,},say: function() {console.log('hello');}
}let stu1 = {...stu};
stu1.info.grade = 2;

这里原对象的grade也会被更改

JSON.parse()和JSON.stringify()

let stu2 = JSON.parse(JSON.stringify(stu))
console.log(stu2) // { name: 'aaa', age: 18, info: { grade: 2, class: 4 } }

无法复制函数,因为函数不是JSON格式的一部分

递归复制

function deepCopy(obj) {// 处理原始类型和nullif (typeof obj !== 'object' || obj == null) return obj;// 如果是对象或数组,则创建新对象let newObj;if (Array.isArray(obj)) {newObj = [];} else {newObj = {};}// 遍历原始对象的所有属性,并对每个属性执行深拷贝for (let key in obj) {newObj[key] = deepCopy(obj[key]);}return newObj;
}
let stu3 = deepCopy(stu);

前面两种方式的缺陷都弥补了,但这么写实在是有点繁琐,而且其实还需要完善哈哈哈

lodash.cloneDeep

终极爸爸来了,借助工具

const lodash = require('lodash');let stu4 = lodash.cloneDeep(stu)

简洁的不能再简洁了,记得要先安装一下依赖噢~

关键字:企业查询猫_前端面试题2023_友情链接买卖代理_宁波网站建设公司哪家好

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: