Итак, основываясь на комментариях, это, кажется, ответ:
В моем примере две строки ...
boundFunction = bind(someFunction, someContext);
boundFunction = someFunction.bind(someContext);
... действительно достигают одного и того же результата.
Однако определенная таким образом функция «связать» не дает возможности связывать дальнейшие аргументы, как это делает Function.prototype.bind
, то есть что-то вроде этого:
function abc(a, b, c) {
console.log('a: '+a, 'b: '+b, 'c: '+c);
}
// This function predefines the first argument for abc:
var bc = abc.bind(undefined, 'Ay!');
abc('Yo!', 'hello', 'world');
// a: Yo! b: hello c: world
bc('hello', 'world');
// a: Ay! b: hello c: world