var obj = {a:123, b:[1,2,3,{a:1, b:2, c:[1,2,3,{q:5, w:6}]}], c:{a:1, b:2}}
function clone(val) {
if (val && (val.constructor === Object || val.constructor === Array)) { // 是数组或对象时,并且不能为空
let resultOther = Array.isArray(val) ? [] : {};
for (key in val) {
resultOther[key] = clone(val[key])
}
return resultOther;
} else {
return val;
}
}
var cloneObj = clone(obj);
obj.c.a = 555;
obj.b[3].c[3].q = 666;
console.log(obj,cloneObj)