apply vs call vs invoke (v16)

Revision 16 of this benchmark created on


Setup

function fn(a, b, c, d) {
      return a + b + c + d;
    }
    var obj = {};
    obj.fn = fn;

Test runner

Ready to run.

Testing in
TestOps/sec
apply
fn.apply(obj, ['a', 'b', 'c', 'd']);
ready
call
fn.call(obj, 'a', 'b', 'c', 'd');
ready
invoke
obj.fn('a', 'b', 'c', 'd');
ready
apply (undef)
fn.apply(undefined, ['a', 'b', 'c', 'd']);
ready
call (undef)
fn.call(undefined, 'a', 'b', 'c', 'd');
ready
invoke (undef)
fn('a', 'b', 'c', 'd');
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.