10. 对象深拷贝问题
首先,要知道基本数据保存在栈内存,对象数据保存在堆内存,对象地址(就是变量名)保存在栈内存,浅拷贝只会复制栈内存的内容,而深拷贝会复制栈和堆内存中的内容 ;
所以深拷贝的对象有 2 份地址 和 2 份数据,操作数据互不影响 ;
深拷贝的方式 :
第一:使用递归函数 ;
第二:使用第三方插件库,如 lodash 库中的 cloneDeep 函数 ;
第三:使用 JSON 字符串
第四:使用浏览器提供的 structuredClone 函数
卷帝
首先,要知道基本数据保存在栈内存,对象数据保存在堆内存,对象地址(就是变量名)保存在栈内存,浅拷贝只会复制栈内存的内容,而深拷贝会复制栈和堆内存中的内容 ;
所以深拷贝的对象有 2 份地址 和 2 份数据,操作数据互不影响 ;
深拷贝的方式 :
第一:使用递归函数 ;
第二:使用第三方插件库,如 lodash 库中的 cloneDeep 函数 ;
第三:使用 JSON 字符串
第四:使用浏览器提供的 structuredClone 函数