prototype vs closures

JavaScript performance comparison

Revision 85 of this test case created by

Preparation code

<script>
var Person = function (name) {
	this.name = name;
}

Person.prototype.get_name = function() {
	return this.name;
};

Person.prototype.set_name = function(name) {
	this.name = name;
};

var person = (function () {
  var get_name = function () {
			return this.name;
	};
  var set_name = function (nm) {
			this.name = nm;
	};
  return function (name) {
    return {
          name : name,
          get_name : get_name,
          set_name : set_name 
    }
  };
})();

var _p = new Person('John');
var _c = person('John');
</script>

    

Preparation code output

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
Prototype init
var p = new Person('John');
pending…
Closure init
var c = person('John');
pending…
Prototype read
_p.get_name();
pending…
Closure read
_c.get_name();
pending…
Prototype write
_p.set_name('Jane');
pending…
Closure write
_c.set_name('Jane');
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