1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| // fast apply, http://jsperf.lnkit.com/fast-apply/5
| module.exports = function (fn, args, that) {
| var un = that === undefined;
| switch (args.length) {
| case 0: return un ? fn()
| : fn.call(that);
| case 1: return un ? fn(args[0])
| : fn.call(that, args[0]);
| case 2: return un ? fn(args[0], args[1])
| : fn.call(that, args[0], args[1]);
| case 3: return un ? fn(args[0], args[1], args[2])
| : fn.call(that, args[0], args[1], args[2]);
| case 4: return un ? fn(args[0], args[1], args[2], args[3])
| : fn.call(that, args[0], args[1], args[2], args[3]);
| } return fn.apply(that, args);
| };
|
|