|                                                         |  | var baseRest = require('./_baseRest'),    createWrap = require('./_createWrap'),    getHolder = require('./_getHolder'),    replaceHolders = require('./_replaceHolders');
/** Used to compose bitmasks for function metadata. */var WRAP_BIND_FLAG = 1,    WRAP_PARTIAL_FLAG = 32;
/** * Creates a function that invokes `func` with the `this` binding of `thisArg` * and `partials` prepended to the arguments it receives. * * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, * may be used as a placeholder for partially applied arguments. * * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" * property of bound functions. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to bind. * @param {*} thisArg The `this` binding of `func`. * @param {...*} [partials] The arguments to be partially applied. * @returns {Function} Returns the new bound function. * @example * * function greet(greeting, punctuation) { *   return greeting + ' ' + this.user + punctuation; * } * * var object = { 'user': 'fred' }; * * var bound = _.bind(greet, object, 'hi'); * bound('!'); * // => 'hi fred!'
 * * // Bound with placeholders.
 * var bound = _.bind(greet, object, _, '!'); * bound('hi'); * // => 'hi fred!'
 */var bind = baseRest(function(func, thisArg, partials) {  var bitmask = WRAP_BIND_FLAG;  if (partials.length) {    var holders = replaceHolders(partials, getHolder(bind));    bitmask |= WRAP_PARTIAL_FLAG;  }  return createWrap(func, bitmask, thisArg, partials, holders);});
// Assign default placeholders.
bind.placeholder = {};
module.exports = bind;
 |