Function Declaration vs. Function Expression

JavaScript performance comparison

Revision 7 of this test case created by and last updated

Preparation code


      
      <script>
Benchmark.prototype.setup = function() {
  var element = document.createElement('div'),
    ev = (1, eval);

};

Benchmark.prototype.teardown = function() {
  element = null;
  ev = null;

};
</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
Function Declaration
(function() {

function fn() { return 1; };

var result = fn();

}());
pending…
Function Expression
(function() {

var fn = function() { return 1; };

var result = fn();
}());
pending…
Function Constructor
(function() {

var fn = new Function('return 1;');

var result = fn();

}());
pending…
DOM Function Transfer
(function() {

element.setAttribute('onclick', 'return 1;');

var result = element.onclick();

}());
pending…
Named Function Expression
(function() {

var fn = function fn() { return 1; };

var result = fn();
}());
pending…
Eval Call
(function() {

var result = eval('1;');
}());
pending…
Eval Indirect Call
(function() {

var result = ev('1;');
}());
pending…
Eval Indirect Call
(function() {

var result = ev('1;');
}());
pending…
Eval Indirect Call
(function() {

var result = ev('1;');
}());
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