1. 程式人生 > 其它 >使用遞迴實現深拷貝

使用遞迴實現深拷貝

  function deepClone(obj) {        //判斷拷貝的obj是物件還是陣列         var objClone = Array.isArray(obj) ? [] : {};         if (obj && typeof obj === "object") { //obj不能為空,並且是物件或者是陣列 因為null也是object             for (key in obj) {                 if (obj.hasOwnProperty(key)) {                          //obj裡面屬性值不為空並且還是物件,進行深度拷貝
                    if (obj[key] && typeof obj[key] === "object") {                          objClone[key] = deepClone(obj[key]); //遞迴進行深度的拷貝                     } else {                         objClone[key] = obj[key]; //直接拷貝                     }                 }             }         }         return objClone;
    }