if(!o)return o;
switch(Object.prototype.toString.call(o)){
case '[object Array]':
var t = [];
for(var i=0,l=o.length;i<l;i++){
t.push(arguments.callee(o[i]));
}
return t;
case '[object Object]':
var t = {};
for(var k in o){
if(o.hasOwnProperty(k)){
t[k]= arguments.callee(o[k]);
}
}
return t;
default:
return o;
}
}
刚写的,发上来求拍砖。