Object对象深度复制
支持Object和Array混合型对象复制。其中用到的对象类型判断方法,详见《JavaScript中Object对象类型判断》
// 遍历递归实现
export const objectClone = (object) => {
let newObject;
if (isObject(object) && !isReact(object)) {
newObject = {};
for (let k in object) {
if (isObject(object[k]) || isArray(object[k]))
newObject[k] = objectClone(object[k]);
else newObject[k] = object[k];
}
} else if (isArray(object)) {
newObject = [];
for (let i = 0; i < object.length; i++) {
if (isObject(object[i]) || isArray(object[i]))
newObject.push(objectClone(object[i]));
else newObject.push(object[i]);
}
} else newObject = object;
return newObject;
};