You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

28 lines
749 B

var isPlainObj = require('./isPlainObj');
var each = require('./each');
var cloneDeep = require('./cloneDeep');
exports = function(obj) {
var i = 0;
var ret = obj;
var len = arguments.length;
while (++i < len) {
obj = arguments[i];
if (isPlainObj(ret) && isPlainObj(obj)) {
each(obj, function(val, key) {
if (
key === '__proto__' ||
key === 'constructor' ||
key === 'prototype'
) {
return;
}
ret[key] = exports(ret[key], obj[key]);
});
} else {
ret = cloneDeep(obj);
}
}
return ret;
};
module.exports = exports;