| 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;
 
 
  |