Как работает выражение apply(this, arguments) в Javascript?
Пример заключается в демонстрации передачи заранее неизвестного количества аргументов в функцию. В JS нет конструкции для передачи одних только аргументов, используя текущий контекст, поэтому чтобы в вызываемой функции контекст был правильный его явным образом передают первым аргументом apply, по-другому просто никак.
анонимную функцию, возвращаемую из not(), можно отдельно забиндить или вызвать на другом контексте, что позволит выполнять f с этим контекстом.function func(a,b,c) { return this[a] === b + c; }
var ifunc = not( func );
/****/
var obj = { 'prop' : 10, 'attr' : true };
/****/
  ifunc.call( obj, 'prop', 4, 6 )
метод call также переопределяет контекст при вызове функции, как и apply, разница в подстановке аргументов.
В другом случае можно генерировать методы для каких-нибудь объектов, причем с привязкой к прототипу.function equal( a ) { return this.prop === a; }
/*...*/.prototype.eq = equal;
/*...*/.prototype.neq = not( equal );
А глобальный контекст вызывается обычно без явного указания для this.