如何区分JavaScript中的深拷贝与浅拷贝?

更新于
2026-09-25 05:42:58
0阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1636个文字,预计阅读时间需要7分钟。

如何区分JavaScript中的深拷贝与浅拷贝?

目录 + 浅拷贝 + 深拷贝 + 补充 + 总结 + 拷贝(又称克隆,包括复制等)+ 分为深拷贝和钱拷贝。实际上,这个问题有时候想传达就很简单,如果不想传达可能会有些绕,但并不比理解封装等概念更难。

目录
  • 浅拷贝
  • 深拷贝
  • 补充
  • 总结

拷贝(又名克隆,复制等),但是又分深拷贝和钱拷贝。

其实这个问题有时候想通了就很简单,如果想不通可能会有点绕,不过其难度比闭包等好理解的多。

为什么又这个概念的存在呢?先举一个例子。

如何区分JavaScript中的深拷贝与浅拷贝?

var person={ name:"张三", age:22 } var person1=person; console.log(person); console.log(person1);

似乎可以被拷贝下来了,但是如果你操作person1的属性值,这个时候person属性值也会改变。

person1.name="李四"; console.log(person); console.log(person1);

其实这个很容易理解,那就是上面只是两个对象的指针地址都是指向栈内存的相同位置,前面讲解引用数据类型的时候讲解过何为引用数据类型。

阅读全文

本文共计1636个文字,预计阅读时间需要7分钟。

如何区分JavaScript中的深拷贝与浅拷贝?

目录 + 浅拷贝 + 深拷贝 + 补充 + 总结 + 拷贝(又称克隆,包括复制等)+ 分为深拷贝和钱拷贝。实际上,这个问题有时候想传达就很简单,如果不想传达可能会有些绕,但并不比理解封装等概念更难。

目录
  • 浅拷贝
  • 深拷贝
  • 补充
  • 总结

拷贝(又名克隆,复制等),但是又分深拷贝和钱拷贝。

其实这个问题有时候想通了就很简单,如果想不通可能会有点绕,不过其难度比闭包等好理解的多。

为什么又这个概念的存在呢?先举一个例子。

如何区分JavaScript中的深拷贝与浅拷贝?

var person={ name:"张三", age:22 } var person1=person; console.log(person); console.log(person1);

似乎可以被拷贝下来了,但是如果你操作person1的属性值,这个时候person属性值也会改变。

person1.name="李四"; console.log(person); console.log(person1);

其实这个很容易理解,那就是上面只是两个对象的指针地址都是指向栈内存的相同位置,前面讲解引用数据类型的时候讲解过何为引用数据类型。

阅读全文