Dynamic arguments to the constructor (v2)

Revision 2 of this benchmark created on


Description

Test which way of creation object by given constructor and ARRAY of arguments are faster: + Fake constructor creation; + Function.prototype.bind method

Setup

function MyClass(a,b,c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }
    
    function create1(ctor, args){
      function Service(){};
      Service.prototype = ctor.prototype;
      var s = new Service();
      ctor.apply(s, args);
      return s;
    }
    
    function Service(ctor, args){
      return ctor.apply(this, args);
    };
    
    function create2(ctor, args){
      Service.prototype = ctor.prototype;
      return new Service(ctor, args);
    }
    
    function create3(ctor, args) {
        return new (Function.prototype.bind.apply(ctor, [null].concat(args)));
    }

Test runner

Ready to run.

Testing in
TestOps/sec
Fake constructor
create1(MyClass, [1,2,3])
ready
Fake constructor 2
create2(MyClass, [1,2,3])
ready
Function.prototype.bind
create3(MyClass, [1,2,3])
ready

Revisions

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