12345678910111213141516171819202122232425262728293031323334 |
- var forOwn = require('./forOwn');
- var isPlainObject = require('../lang/isPlainObject');
- /**
- * Mixes objects into the target object, recursively mixing existing child
- * objects.
- */
- function deepMixIn(target, objects) {
- var i = 0,
- n = arguments.length,
- obj;
- while(++i < n){
- obj = arguments[i];
- if (obj) {
- forOwn(obj, copyProp, target);
- }
- }
- return target;
- }
- function copyProp(val, key) {
- var existing = this[key];
- if (isPlainObject(val) && isPlainObject(existing)) {
- deepMixIn(existing, val);
- } else {
- this[key] = val;
- }
- }
- module.exports = deepMixIn;
|