code: function bind(func, obj) {
          var slice = Array.prototype.slice;
          var args = slice.call(arguments, 2);
          return function () {
              return func.apply(obj, args.concat(slice.call(arguments)));
          };
      }
docs: Create a function bound to a given object
  Thanks to underscore.js