function clone(obj){
// 根据调用clone函数的数据来进行不同的数据的克隆
// 判断:是不是数组,对数组进行遍历克隆
if(Array.isArray(obj)){
var newArr = [];
for(var i=0;i<obj.length;i++){
// 递归,判断数组的元素是什么类型,再一次对他调用clone()
newArr.push(clone(obj[i]));
}
return newArr;
}else if(Object.prototype.toString.call(obj) === '[object Object]'){
// 判断是不是对象
var newObj = {}
// 遍历对象 for in
for(var key in obj){
//属性与属性值赋值给新对象,判断属性值是什么类型,对他调用clone()
newObj[key] = clone(obj[key]);
}
return newObj;
}else{
// 函数就是为了被调用,不用克隆
// 函数 与其它的基本数据类型可以直接返回
return obj;
}
}
JavaScript使用递归实现数据深度克隆
最新推荐文章于 2024-09-09 10:13:50 发布