<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
</head>
<body>
<script type="text/javascript">
function clone(obj){
var o;
switch(typeof obj){
case 'undefined':
break;
case 'string':
o=obj+'';
break;
case 'number':
o=obj-0;
break;
case 'boolean':
o=obj;
break;
case 'object':
if(obj===null){
o=null;
}else if(Object.prototype.toString.call(obj).slice(8,-1)==='Array'){
o=[];
for(var i=0;i<obj.length;i++){
o.push(clone(obj[i])); //深拷贝
}
}else{
o={};
for(var k in obj){
o[k]=clone(obj[k]); //深拷贝
}
}
break;
default:
o=obj;
break;
}
return o;
}
//测试
var a=[12,34,'123'];
console.log(clone(a));
var b=null;
console.log(clone(b));
var c={1:'a',2:'b',3:'c'};
console.log(clone(c));
var b=1;
console.log(clone(1));
</script>
</body>
</html>