prototype vs closures

JavaScript performance comparison

Revision 84 of this test case created by Doug Gale

Preparation code

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

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

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

function person(name) {
	return {
		get_name: get_name,
    set_name: set_name
  };

  function get_name() {
			return name;
	}
	
  function set_name(nm) {
			name = nm;
	}
}

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