Я просматривал Сад JavaScript, когда я наткнулся на хакер Function.call.apply, который используется для создания "быстрых, несвязанных оберток" ". В нем говорится:
Другой трюк заключается в том, чтобы использовать оба вызова и применять вместе для создания быстрых, несвязанных оберток.
function Foo() {} Foo.prototype.method = function(a, b, c) { console.log(this, a, b, c); }; // Create an unbound version of "method" // It takes the parameters: this, arg1, arg2...argN Foo.method = function() { // Result: Foo.prototype.method.call(this, arg1, arg2... argN) Function.call.apply(Foo.prototype.method, arguments); };
Я не понимаю, зачем вам нужно использовать функцию Function.call.apply, когда Function.apply будет достаточно. В конце концов, оба они семантически эквивалентны.