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 深拷贝对象
原文:https://www.cnblogs.com/ziyoublog/p/13152215.html