assignIn.js (906B)
1 var copyObject = require('./_copyObject'), 2 createAssigner = require('./_createAssigner'), 3 keysIn = require('./keysIn'); 4 5 /** 6 * This method is like `_.assign` except that it iterates over own and 7 * inherited source properties. 8 * 9 * **Note:** This method mutates `object`. 10 * 11 * @static 12 * @memberOf _ 13 * @since 4.0.0 14 * @alias extend 15 * @category Object 16 * @param {Object} object The destination object. 17 * @param {...Object} [sources] The source objects. 18 * @returns {Object} Returns `object`. 19 * @see _.assign 20 * @example 21 * 22 * function Foo() { 23 * this.a = 1; 24 * } 25 * 26 * function Bar() { 27 * this.c = 3; 28 * } 29 * 30 * Foo.prototype.b = 2; 31 * Bar.prototype.d = 4; 32 * 33 * _.assignIn({ 'a': 0 }, new Foo, new Bar); 34 * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } 35 */ 36 var assignIn = createAssigner(function(object, source) { 37 copyObject(source, keysIn(source), object); 38 }); 39 40 module.exports = assignIn;