// 使用遞歸來實現一個深度克隆,可以復制一個目標對象,返回一個完整拷貝var deepClone = function fnDeepClone(obj){ var result = typeof obj.splice === 'function'?[]:{},//如果這句注釋掉,會拋出異常,這句發揮的是什么作用? key; if (obj && typeof obj === 'object'){//這句怎么理解?如果obj是對象,typeof obj一定是對象啊。 for (key in obj ){ if (obj[key] && typeof obj[key] === 'object'){ result[key] = fnDeepClone(obj[key]); }else{ result[key] = obj[key];//這句怎么理解?復制的不是值,而是鍵值對? } } return result; } return obj;}var arr=[2,3,[6,7]];var brr=deepClone(arr);console.log(brr);
關于遞歸復制對象代碼的疑問
慕田峪9158850
2018-11-21 15:23:51
