_.before(5, addContactToList));   * // => Allows adding up to 4 contacts to the list.   */  function before(n, func) {    var result;    if (typeof func != 'function') {      throw new TypeError(FUNC_ERROR_TEXT);    }    n = toInteger(n);    return function() {      if (--n > 0) {        result = func.apply(this, arguments);      }      if (n <= 1) {        func = undefined;      }      return result;    };  }  /**   * 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 ob