objectAssign = (target: object, source: object) => { for (let key in source) { // console.log(key); //遍歷參數的鍵 if (typeof source[key] === 'object') { let isEmpty = Array.isArray(source[key]) ? source[key].length === 0 : Object.keys(source[key]).length === 0; if (isEmpty) { target[key] = source[key]; // 值為空直接復制值 } else { objectAssign(target[key], source[key]); //值是對象就再次調用函數 } } else { target[key] = source[key]; //基本類型直接復制值 } } };
參考鏈接:深入 js 深拷貝對象
