Constructor private vars

JavaScript performance comparison

Test case created by Nicolas

Preparation code

<script>
  function ConstructorPrivateProperties() {
   var privateProperty1 = 1,
       privateProperty2 = 2,
       privateProperty3 = 3,
       privateProperty4 = 4,
       privateProperty5 = 5,
       privateProperty6 = 6,
       privateProperty7 = 7,
       privateProperty8 = 8,
       privateProperty9 = 9,
       privateProperty10 = 10;
  
   this.publicMethod1 = function() {
    return privateProperty1 + privateProperty2 + privateProperty3 + privateProperty4 + privateProperty5 + privateProperty6 + privateProperty7 + privateProperty8 + privateProperty9 + privateProperty10;
   };
  }
  
  function PrototypePrivateProperties() {}
  
  PrototypePrivateProperties.prototype = {
   _privateProperty1: 1,
   _privateProperty2: 2,
   _privateProperty3: 3,
   _privateProperty4: 4,
   _privateProperty5: 5,
   _privateProperty6: 6,
   _privateProperty7: 7,
   _privateProperty8: 8,
   _privateProperty9: 9,
   _privateProperty10: 10,
  
   publicMethod1: function() {
    return this._privateProperty1 + this._privateProperty2 + this._privateProperty3 + this._privateProperty4 + this._privateProperty5 + this._privateProperty6 + this._privateProperty7 + this._privateProperty8 + this._privateProperty9 + this._privateProperty10;
   }
  };
</script>
    

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
initialize constructor
for (var i = 0; i < 1000; i++) {
 new ConstructorPrivateProperties();
}
pending…
initialize prototype
for (var i = 0; i < 1000; i++) {
 new PrototypePrivateProperties();
}
pending…

Compare results of other browsers

Revisions

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

0 Comments