joint.all.js
function bind(func, thisArg) {
      return arguments.length > 2
        ? createBound(func, 17, nativeSlice.call(arguments, 2), null, thisArg)
        : createBound(func, 1, null, null, thisArg);
    }
function bind(func, thisArg) {
      return arguments.length > 2
        ? createBound(func, 17, nativeSlice.call(arguments, 2), null, thisArg)
        : createBound(func, 1, null, null, thisArg);
    }
function bind ( func , thisArg ) { return arguments . length > 2 ? createBound ( func , 17 , nativeSlice . call ( arguments , 2 ) , null , thisArg ) : createBound ( func , 1 , null , null , thisArg ) ; }
Creates a function that, when called, invokes `func` with the `this`
binding of `thisArg` and prepends any additional `bind` arguments to those
provided to the bound function.

@static
@memberOf _
@category Functions
@param {Function} func The function to bind.
@param {*} [thisArg] The `this` binding of `func`.
@param {...*} [arg] Arguments to be partially applied.
@returns {Function} Returns the new bound function.
@example

var func = function(greeting) {
return greeting + ' ' + this.name;
};

func = _.bind(func, { 'name': 'moe' }, 'hi');
func();
// => 'hi moe'
Creates a function that when called invokes func with the this binding of thisArg and prepends any additional bind arguments to those provided to the bound function .