time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

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;