首页 > 其他分享 >Lodash中的_.cloneDeep(value) 深拷贝和_.clone(value) 浅拷贝

Lodash中的_.cloneDeep(value) 深拷贝和_.clone(value) 浅拷贝

时间:2023-02-21 16:45:40浏览次数:54  
标签:cloneDeep clone value _. objects 拷贝

Lodash

是一个一致性、模块化、高性能的 JavaScript 实用工具库。

_.cloneDeep(value)

这个方法类似_.clone,除了它会递归拷贝 value。(注:也叫深拷贝)。

参数:

   value (*): 要深拷贝的值。

返回:

      (*): 返回拷贝后的值。

例子:

 
  1. var objects = [{ 'a': 1 }, { 'b': 2 }];

  2.  
  3. var deep = _.cloneDeep(objects);

  4. console.log(deep[0] === objects[0]);

  5. // => false


 

_.clone(value)   

创建一个 value 的浅拷贝

参数:

      value (*): 要拷贝的值

返回:

      (*): 返回拷贝后的值。

例子:

 
  1. var objects = [{ 'a': 1 }, { 'b': 2 }];

  2.  
  3. var shallow = _.clone(objects);

  4. console.log(shallow[0] === objects[0]);

  5. // => true

1、什么是浅拷贝

创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址 ,所以如果其中一个对象改变了这个地址,就会影响到另一个对象。

2、什么是深拷贝

深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。当对象和它所引用的对象一起拷贝时即发生深拷贝。深拷贝相比于浅拷贝速度较慢并且花销较大。拷贝前后两个对象互不影响。

标签:cloneDeep,clone,value,_.,objects,拷贝
From: https://www.cnblogs.com/Jishuyang/p/17141538.html

相关文章