核心提示: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代替