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.
20 lines
520 B
20 lines
520 B
// optional / simple context binding |
|
var aFunction = require('./_a-function'); |
|
module.exports = function (fn, that, length) { |
|
aFunction(fn); |
|
if (that === undefined) return fn; |
|
switch (length) { |
|
case 1: return function (a) { |
|
return fn.call(that, a); |
|
}; |
|
case 2: return function (a, b) { |
|
return fn.call(that, a, b); |
|
}; |
|
case 3: return function (a, b, c) { |
|
return fn.call(that, a, b, c); |
|
}; |
|
} |
|
return function (/* ...args */) { |
|
return fn.apply(that, arguments); |
|
}; |
|
};
|
|
|