You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
784 B
24 lines
784 B
exports = function(fn, startIdx) {
|
|
startIdx = startIdx == null ? fn.length - 1 : +startIdx;
|
|
return function() {
|
|
var len = Math.max(arguments.length - startIdx, 0);
|
|
var rest = new Array(len);
|
|
var i;
|
|
for (i = 0; i < len; i++) rest[i] = arguments[i + startIdx];
|
|
|
|
switch (startIdx) {
|
|
case 0:
|
|
return fn.call(this, rest);
|
|
case 1:
|
|
return fn.call(this, arguments[0], rest);
|
|
case 2:
|
|
return fn.call(this, arguments[0], arguments[1], rest);
|
|
}
|
|
var args = new Array(startIdx + 1);
|
|
for (i = 0; i < startIdx; i++) args[i] = arguments[i];
|
|
args[startIdx] = rest;
|
|
return fn.apply(this, args);
|
|
};
|
|
};
|
|
|
|
module.exports = exports;
|
|
|