# 深拷贝和浅拷贝
# 什么是浅拷贝
浅拷贝:只是简单的对象引用,并没有真正的从内存中开辟一块空间。
# 浅拷贝方式
- Object.assign
Object.assign
只是拷贝所有的属性值到新的对象中,如果属性值是对象的话,拷贝的是地址,所以并不是深拷贝 - ES6中的展开运算符
...
# 什么是深拷贝
深拷贝:是将一个对象从内存中完整的copy一份出来,开辟一个新的区域空间来存放对象
# 深拷贝方式
- 使用
JSON.parse(JSON.stringfy(Object))
这种方式简单粗暴,但是对象内存在函数、undefined
、symbol
时不能使用 - 自己实现深拷贝函数方法 - 递归实现
loadsh._cloneDeep(Object)
方法
# 在js中数据存储的位置
- 原始类型存储的位置为栈储存
- 引用类型数据:在栈中存放指针,在堆中存放内容