Appearance
前言: 在[学习 JavaScript 基础篇]提到深度克隆与浅度克隆,最近在云栖社区看到有另一种深度克隆写法,因此记下笔记。
实现思路:
利用 ES6 的数组原方法 Array.isArray 判断数据类型。
如果是引用数据类型循环递归判断,否则输出。
代码片段:
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;
}
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;
}