<script>
var obj = {
a: 1,
b: {
c: 1,
d: 2,
e: {
f: "222",
o: {
e: "oop",
},
},
},
};
var arr1 = [1, 2, 3, 4, [0, 2, [3, 2]]];
function deepClone(params) {
if (params == undefined || params == null) {
return params;
}
// 如果是对象
if (params.constructor == Object) {
var newObj = {};
for (var a in params) {
// 如果对象套对象
if (params[a].constructor == Object) {
arguments.callee(params[a]);
}
newObj[a] = params[a];
}
return newObj;
}
// 如果是数组
if (params instanceof Array) {
var newArray = [];
params.forEach((item, index) => {
if (item instanceof Array) {
arguments.callee(item);
}
newArray[index] = params[index];
});
return newArray;
}
}
var obj2 = deepClone(obj);
console.log("obj2=", obj2);
arr2 = deepClone(arr1);
console.log("arr2", arr2);
</script>