浅拷贝和深拷贝的区别:
浅拷贝 : 只是将数据中所有的数据引用下来,依旧指向同一个存放地址,拷贝之后的数据修改之后,也会影响到原数据的中的对象数据
深拷贝: 将数据中所有的数据拷贝下来,对拷贝之后的数据进行修改不会影响到原数据
实现思路:
- 将要拷贝的数据 obj 以参数的形式传参
- 声明一个变量 来储存我们拷贝出来的内容
- 判断 obj 是否是引用类型数据,如果不是,则直接赋值即可( 可以利用 obj instanceof Type 来进行判断),
- 由于用 instanceof 判断array 是否是object的时候,返回值为true, 所以我们在判断的时候,直接判断obj 是否是Array 就可避免这个问题
- 根据判断的不同类型,再给之前的变量赋予不同的类型: [ ] : { }
- 循环obj 中的每一项,如果里面还有复杂数据类型,则直接利用递归再次调用copy函数
- 最后 将 这个变量 return 出来即可
代码
var obj = {
//原数据,包含字符串、对象、函数、数组等不同的类型
name:"test"

最低0.47元/天 解锁文章
&spm=1001.2101.3001.5002&articleId=83718496&d=1&t=3&u=9c1cbb82570d458da17ff7d049e9ee1e)
16万+

被折叠的 条评论
为什么被折叠?



