17、深拷貝
深拷貝與淺拷貝最大的不同就是對象的屬性是嵌套對象,會新建一個對象
步驟:
- 判斷是否為對象
- 判斷是否為i數組或者對象,給新的有個容器
- 遍歷循環,如果是對象要遍歷循環,采用遞歸
function deepCopy(obj){// 判斷是否為對象if(!obj || typeof obj !== 'object'){return obj;}// 判斷是否為數組或者是都西昂newCopy = Array.isArray(obj) ? [] : {};// 進行遍歷,如果是對象的話重新使用deep函數for(let key in obj){if(obj.hasOwnProperty(key)){newCopy[key] = typeof key === 'object' ? deepCopy(obj[key]) : obj[key];}}return newCopy;}