function proxy(fn, context) {
  for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
    args[_key - 2] = arguments[_key];
  }

  return function () {
    for (var _len2 = arguments.length, args2 = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
      args2[_key2] = arguments[_key2];
    }

    return fn.apply(context, args.concat(args2));
  };
}
Takes a function and returns a new one that will always have a particular context.
Custom proxy to avoid jQuery's guid.
@param {Function} fn - The target function.
@param {Object} context - The new context for the function.
@returns {Function} The new function.