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