<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
<script>
function deep(data){
var datatype = Object.prototype.toString.call(data);
if(datatype == '[object Array]'){
var arr1 =[];
data.forEach(function(a){
arr1.push(deep[a])
})
return arr1
}else if(datatype == '[object Object]'){
var obj ={};
for(key in data){
obj[key] = deep(data[key])
}
return obj
}else{
return data
}
}
var obj = {
name:"小罗",
age:22
}
var obj2 = deep(obj)
obj2.name ="小红";
console.log(obj);
console.log(obj2);
</script>
</html>
方法步骤:首先定义一个函数方法名带参数,
校验是否是数组是否为对象 Object.prototype.toString.call(),
数组需要定义空数组,参数.foreach方法带参数,
空数组.push(函数方法名[参数]);
对象定义一个空对象,for(key in data){}
加油!!