import deepClone from "./deepClone"; 
 | 
  
 | 
// JS对象深度合并 
 | 
function deepMerge(target = {}, source = {}) { 
 | 
    target = deepClone(target); 
 | 
    if (typeof target !== 'object' || typeof source !== 'object') return false; 
 | 
    for (var prop in source) { 
 | 
        if (!source.hasOwnProperty(prop)) continue; 
 | 
        if (prop in target) { 
 | 
            if (typeof target[prop] !== 'object') { 
 | 
                target[prop] = source[prop]; 
 | 
            } else { 
 | 
                if (typeof source[prop] !== 'object') { 
 | 
                    target[prop] = source[prop]; 
 | 
                } else { 
 | 
                    if (target[prop].concat && source[prop].concat) { 
 | 
                        target[prop] = target[prop].concat(source[prop]); 
 | 
                    } else { 
 | 
                        target[prop] = deepMerge(target[prop], source[prop]); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } else { 
 | 
            target[prop] = source[prop]; 
 | 
        } 
 | 
    } 
 | 
    return target; 
 | 
} 
 | 
  
 | 
export default deepMerge; 
 |