博主:DongJiang
码龄:7年
等级:LV.22级
内容:316
今日访问:2312
访问总量:5936
博客简介:学习与分享
博客创建时间:2018-04-12
博客主页 立即前往
赞助位
成为赞助商

什么是深拷贝和浅拷贝,怎么理解?

来源: 2024-05-16 09:13:42 播报

1、浅拷贝 :只复制指向某个对象的指针,而不复制这个对象本身,新旧对象共享一块内存。

2、深拷贝 :复制并创建一个一模一样的对象,不共享内存,修改新对象旧对象不会变。

深拷贝方式:

1、递归(对可遍历的属性进行递归)

// 一般来说,在js中我们用JSON.parse(JSON.stringify(obj))来完成深拷贝,但是该方法不能解决属性为函数,undefined,循环引用的的情况,因此我们有时需要自己实现一个深拷贝。
function clone(o) {
 var temp = {}
 for (var key in o) {
  if (typeof o[key] === 'object' && o[key] !== null) {
      temp[key] = clone(o[key])
  } else {
      temp[key] = o[key]
  }
 }
 return temp
}

2、使用JSON对象的parse和stringify

浅拷贝方式:

1、Object.assign

2、(...) 扩展运算符

原文出处:
版权声明:本文来源地址若非本站均为转载,若侵害到您的权利,请及时联系我们,我们会在第一时间进行处理。