code: function(fn, n) {
      var lockedFn;
      if (_partial(fn)) {
        _lock(fn, isNumber(n) ? n : null);
        return fn;
      }
      lockedFn = function() {
        arguments.length = min(_lock(lockedFn), arguments.length);
        return fn.apply(this, arguments);
      };
      _lock(lockedFn, isNumber(n) ? n : fn.length);
      return lockedFn;
    }
docs: *
  @method lock([n])
  @returns Function
  @short Locks the number of arguments accepted by the function.
  @extra If not passed, [n] will be the length of the function. This method
  can be called on functions created by `partial`, in which case it
  will lock the total arguments during execution.
  
  @example
  
  logArgs.lock(2)(1,2,3)      -> logs 1,2
  
  @param {number} [n]
  
  *