_.cloneDeep()方法用于创建值的深层副本,即,它以递归方式克隆该值。此方法类似于_.clone()方法。
用法:
_.cloneDeep( value )
参数:此方法接受上述和以下描述的单个参数:
- value:此参数保存需要递归克隆的值。
返回值:此方法返回深度克隆的值。
范例1:克隆简单对象
const _ = require('lodash');
var obj = {
x:23
};
// Deep copy
var deepCopy = _.cloneDeep(obj);
console.log('Comparing origianal with'
+ ' deep ', obj === deepCopy);
obj.x = 10; // Changing original value
console.log('After changing original value');
console.log("Original value ", obj);
console.log("Deep Copy value ", deepCopy);
输出:
Comparing origianal with deep false After changing original value Original value { x:10 } Deep Copy value { x:23 }
范例2:克隆复杂对象
const _ = require('lodash');
var obj = [{ x:1 }, {y:2}];
// Deep copy
var deepCopy = _.cloneDeep(obj);
console.log('Comparing origianal with deep ',
obj[0] === deepCopy[0]);
// Changing orignal value
obj[0].x = 10;
// Values after changing original value
console.log("After changing original value");
console.log("Original value ", obj);
console.log("Deep Copy value ", deepCopy);
输出:
Comparing origianal with deep false After changing original value Original value [ { x:10 }, { y:2 } ] Deep Copy value [ { x:1 }, { y:2 } ]
因此,在这里我们看到,更改原始值后,值的深层副本没有改变,因为_.cloneDeep()递归地深深复制了该值。
注意:在正常的JavaScript中这将无法正常工作,因为它需要安装库lodash。
参考: https://lodash.com/docs/4.17.15#cloneDeep
相关用法
- Lodash _.take()用法及代码示例
- Lodash _.nth()用法及代码示例
- Lodash _.xor()用法及代码示例
- Lodash _.sortedLastIndex()用法及代码示例
- Lodash _.pull()用法及代码示例
- Lodash _.takeRight()用法及代码示例
- Lodash _.zipWith()用法及代码示例
- Lodash _.find()用法及代码示例
- Lodash _.sampleSize()用法及代码示例
- Lodash _.clone()用法及代码示例
- Lodash _.castArray()用法及代码示例
- Lodash _.differenceWith()用法及代码示例
- Lodash _.zipObject()用法及代码示例
- Lodash _.remove()用法及代码示例
- Lodash _.pullAt()用法及代码示例
- Lodash _.head()用法及代码示例
- Lodash _.pullAll()用法及代码示例
- Lodash _.fromPairs()用法及代码示例
- Lodash _.difference()用法及代码示例
注:本文由纯净天空筛选整理自Dharmendra_Kumar大神的英文原创作品 Lodash | _.cloneDeep() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。