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

标签: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、(...) 扩展运算符

原文出处:http://www.dongblog.com/notes/55.html
来源:博客网 转载请注明出处!

活跃用户

Lisa song
Ta还没有签名
洁西
Ta还没有签名
わ·名
Ta还没有签名
☆阳光少年、
Ta还没有签名

友情链接


Warning: Smarty error: unable to read resource: "../../../templates/default/./common/foot/footer_index.htm" in /usr/home/hyu3925200001/htdocs/common/smarty/Smarty.class.php on line 1093

Warning: Smarty error: unable to read resource: "../../../templates/default/./common/foot/footer_index.htm" in /usr/home/hyu3925200001/htdocs/common/smarty/Smarty.class.php on line 1093