| 123456789101112131415161718192021222324252627282930 | 
							- 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;
 
 
  |