1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| // 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);
| };
| };
|
|