function mycopy(_data){
// 判断是否为基本数据类型或者是否为空值,如果是则返回数据值
if(typeof _data !== "object" || _data == null){
return _data;
}
let data;
// 如果不是基本数据类型,则判断传入的是数组还是对象,并赋值给返回值data
if(_data instanceof Array){
data = [];
}else{
data = {};
}
// 循环遍历传入的数组或者对象
for(let key in _data){
//_data.hasOwnProperty(key) 判断是否为原型上的属性
if(_data.hasOwnProperty(key)){
// 如果为基本数据类型,会继续调用mycopy(),直到为基本数据类型为止
data[key] = mycopy(_data[key]);
}
}
return data;
}
只需传入参数,然后通过变量接收完成深拷贝