实现一个深浅拷贝
24-05-24 11:21
887
0
我把深浅拷贝单独作为一讲来专门讲解,是因为在 JavaScript 的编程中经常需要对数据进行复制,什么时候用深拷贝、什么时候用浅拷贝,是开发过程中需要思考的;同时深浅拷贝也是前端面试中比较高频的题目。
但是我在面试候选人的过程中,发现有很多同学都没有搞懂深拷贝和浅拷贝的区别和定义。最近我也在一些关于 JavaScript 的技术文章中发现,里面很多关于深浅拷贝的代码写得比较简陋,从面试官的角度来讲,简陋的答案是不太能让人满意的。
因此,深入学习这部分知识有助于提高你手写 JS 的能力,以及对一些边界特殊情况的深入思考能力,这一讲我会结合最基础但是又容易写不好的的题目来帮助你提升。
在开始之前,我先抛出来两个问题,你可以思考一下。
拷贝一个很多嵌套的对象怎么实现?
在面试官眼中,写成什么样的深拷贝代码才能算合格?
带着这两个问题,我们先来看下浅拷贝的相关内容。
浅拷贝的原理和实现
对于浅拷贝的定义我们可以初步理解为:
自己创建一个新的对象,来接受你要重新复制或引用的对象值。如果对象属性是基本的数据类型,复制的就是基本类型的值给新对象;但如果属性是引用数据类型,复制的就是内存中的地址,如果其中一个对象改变了这个内存中的地址,肯定会影响到另一个对象。
下面我总结了一些 JavaScript 提供的浅拷贝方法,一起来看看哪些方法能实现上述定义所描述的过程。
-
考研英语阅读方法论
01.2014英一阅读讲义.pdf01.2014英二阅读讲义.pdf02.2015英一阅读讲义.pdf02.2015英二阅读讲义.pdf03.2016英一阅读讲义.pdf03.2016英二阅读... 851 0 24-08-19 -
分页样式3D立体外观
343 0 21-05-17 -
吉卜力工作室 | 下载宫崎骏动漫壁纸
吉卜力工作室(スタジオジブリ、Studio Ghibli),是一家日本的动画工作室。工作室成立于1985年中旬,原附属于德间书店,并由极富声望的导... 1190 0 24-11-13 -
为什么你的AI助手总是答非所问?deepseek 应该怎样提问,让你轻松驾驭AI
「写篇产品分析」→ 收到一堆不知所云的文字「做个竞品对比」→ 得到几页没有重点的废话揭秘:不是AI不够聪明,而是你的指令太“高冷”!... 577 0 25-04-30 -
Like Girl5.0.0爱情空间网站源码php
LikeGirl5.0.0更新说明新增前端全站pjax无限加载技术新增前后端Ajax数据异步请求技术新增前端头部头像背景高斯模糊开关新增前端Pjax无限加... 1445 0 24-05-24 -
小学教师资格证考试历年真题
2015上半年《综合素质》+《教育教学知识与能力》真题及答案.pdf2015上半年小学教育知识与能力.pdf2015上半年小学综合素质.pdf2015年下半年... 1098 0 24-08-20 -
什么是深网?有危险吗?如何从A-Z进入深网
目前,很多人都听说过深网及其相关信息。今天的现代技术市场还没有触及深网的所有内容。因此,让我们通过FPT云来了解什么是深网,它危险吗... 1453 0 24-04-24 -
带你一起实现 JSON.Stringify 方法
我在上一讲为你剖析了闭包这个难点,带你了解了作用域、闭包产生的原因及表现形式。那么这一讲,我们一起来手工实现一个 JSON.stringify ... 892 0 24-05-24
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~