# 深拷贝和浅拷贝

# 什么是浅拷贝

浅拷贝:只是简单的对象引用,并没有真正的从内存中开辟一块空间。

# 浅拷贝方式

  • Object.assign Object.assign 只是拷贝所有的属性值到新的对象中,如果属性值是对象的话,拷贝的是地址,所以并不是深拷贝
  • ES6中的展开运算符...

# 什么是深拷贝

深拷贝:是将一个对象从内存中完整的copy一份出来,开辟一个新的区域空间来存放对象

# 深拷贝方式

  • 使用JSON.parse(JSON.stringfy(Object)) 这种方式简单粗暴,但是对象内存在函数、undefinedsymbol时不能使用
  • 自己实现深拷贝函数方法 - 递归实现
  • loadsh._cloneDeep(Object)方法

# 在js中数据存储的位置

  • 原始类型存储的位置为栈储存
  • 引用类型数据:在栈中存放指针,在堆中存放内容
Last Updated: 4/6/2021, 12:24:16 PM