//实现一个函数,可以对JavaScript中的5种主要数据类型(Number,String,Boolean,
//Array,Object)进行复制
function clone(obj){
var o;
switch(typeof obj){
case "undefined": break;
case "number": o=obj-0;break;
case "string": o=obj+"";break;
case "boolean":o=obj; break;
case "object":
//可能为null,或者数组,或者对象
if(obj===null)
o=null;
else{
for(var i=0;i<obj.length;i++){
o[i]=obj[i];
}
console.log(o);
}
else{
o=new Object();
for(var p in obj){
var name=p;
var value=obj[p];
o[name]=value;
}
}
}
break;
default:
}
return o;
}
//Array,Object)进行复制
function clone(obj){
var o;
switch(typeof obj){
case "undefined": break;
case "number": o=obj-0;break;
case "string": o=obj+"";break;
case "boolean":o=obj; break;
case "object":
//可能为null,或者数组,或者对象
if(obj===null)
o=null;
else{
if(Object.prototype.toString.call(obj).slice(8,-1)==="Array"){
//注意Object.prototype.toString.call(obj)返回的是一个字符串'[object Array]',slice(8,-1)包括第一个括号,所以是8不是7
o=[];for(var i=0;i<obj.length;i++){
o[i]=obj[i];
}
console.log(o);
}
else{
o=new Object();
for(var p in obj){
var name=p;
var value=obj[p];
o[name]=value;
}
}
}
break;
default:
}
return o;
}