<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
function deepClone(target={},origin){
var toStr = Object.prototype.toString;
var strArr = '[object Array]';
for(var prop in origin){
if(origin.hasOwnProperty(prop)){
if(origin[prop] !== null && typeof origin[prop] === 'object'){
if(toStr.call(origin[prop]) === strArr){
target[prop] = [];
}else{
target[prop] = {};
}
deepClone(target[prop],origin[prop]);
}else{
target[prop] = origin[prop];
}
}
}
return target;
}
var obj = {
a:1,
b:{
c:1,
d:2
},
e:[1,2,3]
}
var obj1 = deepClone({},obj);
console.log(obj1);
obj1.e.push('hello world');
console.log(obj1);//互不影响
console.log(obj);
</script>
</body>
</html>