核心提示:function clone(obj) {var cloneObj;switch (typeof obj){case undefined :break;case string :case number...
function clone(obj) {
var cloneObj;
switch (typeof obj){
case "undefined" :
break;
case "string" :
case "number" :
case "boolean" :
cloneObj = obj;
break;
case "object" :
if(obj == null) cloneObj = null;
else if(Object.prototype.toString.call(obj) === "[object Object]"){
cloneObj = {};
for(var key in obj){
cloneObj[key] = clone(obj[key])
}
}
else if(Object.prototype.toString.call(obj) === "[object Array]"){
cloneObj = [];
for(var i=0 ; i这个问题主要要考虑到基本数据类型和引用数据类型,基本数据类型可以直接赋值进行复制,引用数据类型则不能直接赋值复制,需要判断引用数据类型是null、Object、Array中的哪一种,然后进行遍历复制。
Object.prototype.toString方法详解这里,注意:此toString不同于彼toString(),前面的没有括号哟!!
Object.prototype.toString也可以直接用toString代替


