utils
Version:
Fast, generic JavaScript/node.js utility functions.
34 lines (28 loc) • 687 B
JavaScript
;
var hasOwn = require('./hasOwn');
var isPlainObject = require('../lang/isPlainObject');
/**
* Extend `o` with properties of other `objects`.
*
* @name .extend
* @param {Object} `o` The target object. Pass an empty object to shallow clone.
* @param {Object} `objects`
* @return {Object}
* @api public
*/
module.exports = function extend(o) {
if (!isPlainObject(o)) { return {}; }
var args = arguments;
var len = args.length - 1;
for (var i = 0; i < len; i++) {
var obj = args[i + 1];
if (isPlainObject(obj)) {
for (var key in obj) {
if (hasOwn(obj, key)) {
o[key] = obj[key];
}
}
}
}
return o;
};