
1 var obj = { 2 name : "钱谦益", 3 age : 88, 4 card : ["visa","master"], 5 wife : {name : "柳如是",son : {name : "小钱"}} 6 } 7 var obj1 = {} 8 9 10 // 1.判断是不是原始值 11 // 2.判断是数组还是对象 12 // 3.建立相应的数组和对象 13 14 function deepClone(origin, target){ 15 var target = target || {}, 16 toStr = Object.prototype.toString, 17 arrStr = "[object Array]" 18 for(var prop in origin){ 19 if(origin.hasOwnProperty(prop)){ 20 if(origin[prop] !== "null" && typeof(origin[prop]) == "object"){ 21 if(toStr.call(origin[prop]== arrStr)){ 22 target[prop] = []; 23 }else{ 24 target[prop] = {}; 25 } 26 deepClone(origin[prop],target[prop]) 27 }else{ 28 target[prop] = origin[prop] 29 } 30 } 31 }return target; 32 }

犯了多少错了~~~~~~~~




这两出风骚的错误,js居然不报!!!
导致的结果是:
克隆出来的obj1里面的所有引用值全部被克隆成数组!
正常结果

错误:

浙公网安备 33010602011771号