| 12345678910111213141516171819202122232425262728293031323334353637383940 | var toInteger = require('./toInteger');/** Error message constants. */var FUNC_ERROR_TEXT = 'Expected a function';/** * Creates a function that invokes `func`, with the `this` binding and arguments * of the created function, while it's called less than `n` times. Subsequent * calls to the created function return the result of the last `func` invocation. * * @static * @memberOf _ * @since 3.0.0 * @category Function * @param {number} n The number of calls at which `func` is no longer invoked. * @param {Function} func The function to restrict. * @returns {Function} Returns the new restricted function. * @example * * jQuery(element).on('click', _.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;  };}module.exports = before;
 |