_.cloneDeep(value)
_.cloneDeep(value)
创建一个深拷贝(deep clone)的 value
,该值及其内部的所有引用类型数据结构都被递归地拷贝,生成一个新的对象,原对象和新对象之间没有任何引用关系。
value
:要进行深拷贝的值。
示例:
javascript
const obj = { a: 1, b: { c: 2 } };
const arr = [1, [2, { d: 3 }]];
const clonedObj = _.cloneDeep(obj);
const clonedArr = _.cloneDeep(arr);
// 修改拷贝后的对象
clonedObj.a = 100;
clonedObj.b.c = 200;
// 输出修改后的拷贝后的对象和原始对象
console.log(clonedObj); // 输出:{ a: 100, b: { c: 200 } }
console.log(obj); // 输出:{ a: 1, b: { c: 2 } }
// 修改拷贝后的数组
clonedArr[0] = 100;
clonedArr[1][1].d = 300;
// 输出修改后的拷贝后的数组和原始数组
console.log(clonedArr); // 输出:[100, [2, { d: 300 }]]
console.log(arr); // 输出:[1, [2, { d: 3 }]]
在这个例子中,_.cloneDeep
创建了对象 obj
和数组 arr
的深拷贝 clonedObj
和 clonedArr
。修改拷贝后的对象或数组不会影响原始对象或数组,也不会影响拷贝后的对象或数组内部的引用类型数据结构。