123456789101112131415161718192021222324252627282930313233 |
- var forOwn = require('./forOwn');
- var isPlainObject = require('../lang/isPlainObject');
- /**
- * Deeply copy missing properties in the target from the defaults.
- */
- function deepFillIn(target, defaults){
- var i = 0,
- n = arguments.length,
- obj;
- while(++i < n) {
- obj = arguments[i];
- if (obj) {
- // jshint loopfunc: true
- forOwn(obj, function(newValue, key) {
- var curValue = target[key];
- if (curValue == null) {
- target[key] = newValue;
- } else if (isPlainObject(curValue) &&
- isPlainObject(newValue)) {
- deepFillIn(curValue, newValue);
- }
- });
- }
- }
- return target;
- }
- module.exports = deepFillIn;
|