Function declaration styles

JavaScript performance comparison

Test case created by Charlie Stigler

Preparation code

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
 
<script>
Benchmark.prototype.setup = function() {
    var MyElementFuncs = function() {
      var self = this;
   
      function copyit(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      }
     
      function copyit1(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      }
     
      function copyit2(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      }
     
      function copyit3(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      }
     
      function copyit4(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      }
     
      function copyit5(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      }
     
      function copyit6(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      }
     
      function copyit7(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      }
     
     
      function copyit8(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      }
     
      function copyit9(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      }
     
      function copyit10(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      }
    };
   
   
   
   
    var MyElementVars = function() {
      var self = this;
   
      self.copyit = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      };
     
      self.copyit1 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      };
     
      self.copyit2 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      };
     
      self.copyit3 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      };
     
      self.copyit4 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      };
     
      self.copyit5 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      };
     
      self.copyit6 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      };
     
      self.copyit7 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      };
     
      self.copyit8 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      };
     
      self.copyit9 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      };
     
      self.copyit10 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
      };
    };
   
   
   
   
    var MyElementPrototypes = function() {
      var self = this;
    };
   
    MyElementPrototypes.prototype.copyit = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
    };
   
    MyElementPrototypes.prototype.copyit1 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
    };
   
    MyElementPrototypes.prototype.copyit2 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
    };
   
    MyElementPrototypes.prototype.copyit3 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
    };
   
    MyElementPrototypes.prototype.copyit4 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
    };
   
    MyElementPrototypes.prototype.copyit5 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
    };
   
    MyElementPrototypes.prototype.copyit6 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
    };
   
    MyElementPrototypes.prototype.copyit7 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
    };
   
   
    MyElementPrototypes.prototype.copyit8 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
    };
   
    MyElementPrototypes.prototype.copyit9 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
    };
   
    MyElementPrototypes.prototype.copyit10 = function(theField) {
        var selectedText = document.selection;
        if (selectedText.type == 'Text') {
                var newRange = selectedText.createRange();
                theField.focus();
                theField.value = newRange.text;
        } else {
                alert('select a text in the page and then press this button');
        }
    };
   
    var MyElementNone = function() {
      var self = this;
    };
};
</script>

Preparation code output

Test runner

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

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
func declarations
var myEl = new MyElementFuncs();
pending…
var declarations
var myEl = new MyElementVars();
pending…
prototype declarations
var myEl = new MyElementPrototypes();
pending…
no declarations
var myEl = new MyElementNone();
pending…

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

Compare results of other browsers

0 comments

Add a comment