call vs apply (v47)

Revision 47 of this benchmark created on


Setup

function Obj() {};
      Obj.prototype.target = function (arg) {
      var string = "arguments", i;
      for (i in arguments) {
        string += ', ' + arguments[i]
      }
      return string;
    }
    var obj = new Obj();

Test runner

Ready to run.

Testing in
TestOps/sec
Call
var scope = {};
Obj.prototype.target.call(scope, 
01, 02, 03, 04, 05, 06, 07, 08, 09, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100
);
ready
Apply
var scope = {};
Obj.prototype.target.call(scope, [
01, 02, 03, 04, 05, 06, 07, 08, 09, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100
]);
ready
Normal invocation
new Obj().target(
01, 02, 03, 04, 05, 06, 07, 08, 09, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100
);
ready
Normal invocation cached Obj
obj.target(
01, 02, 03, 04, 05, 06, 07, 08, 09, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100
);
ready
call (1 argument)
var scope = {};
Obj.prototype.target.call(scope, 1);
ready
apply (1 argument)
var scope = {};
Obj.prototype.target.call(scope, [1]);
ready
call (no arg)
var scope = {};
Obj.prototype.target.call(scope);
ready
apply (no arg)
var scope = {};
Obj.prototype.target.apply(scope);
ready
Apply (5 args)
var scope = {};
Obj.prototype.target.apply(scope, [01, 02, 03, 04, 05]);
ready
Call (5 args)
var scope = {};
Obj.prototype.target.call(scope, 01, 02, 03, 04, 05);
ready
Normal (5 args)
obj.target(01, 02, 03, 04, 05);
ready

Revisions

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