或许为了自身写,或许为了知己写!

补充深度克隆

前言:
学习JavaScript基础篇提到深度克隆与浅度克隆,最近在云栖社区看到有另一种深度克隆写法,因此记下笔记。

实现思路:

  • 利用ES6的数组原方法Array.isArray判断数据类型。

  • 如果是引用数据类型循环递归判断,否则输出。

代码片段:

1
2
3
4
5
6
7
8
9
10
11

function deepClone(origin){
var newObj = (Array.isArray(origin)) ? [] : {};

for(var key in origin){
newObj[key] = (typeof origin[key] == 'object')
? deepClone2(origin[key])
: origin[key];
}
return newObj;
}

———— / END / ————
0%