Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
closure vs proto vs class 3
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36
Browser:
Chrome 119
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
closure1
845.6 Ops/sec
prototype1
834.8 Ops/sec
classes1
819.4 Ops/sec
Tests:
closure1
function MyFirstClosureClass (one, two) { let _one = one; let _two = two; let _result = null; this.compute = function () { _result = _one * _two * _one * _two; } this.printResult = function () { console.log(_result); } } const amt = 200; let contents = new Array(amt); for (let i = 0; i < amt; i ++) { contents[i] = new MyFirstClosureClass(Math.random(), Math.random()); contents[i].compute(); contents[i].printResult(); }
prototype1
function MyFirstProtoClass (one, two) { this._one = one; this._two = two; this._result = null; } MyFirstProtoClass.prototype.compute = function (){ this._result = this._one * this._two * this._one * this._two; }; MyFirstProtoClass.prototype.printResult = function (){ console.log(this._result); }; const amt = 200; let contents = new Array(amt); for (let i = 0; i < amt; i ++) { contents[i] = new MyFirstProtoClass(Math.random(), Math.random()); contents[i].compute(); contents[i].printResult(); }
classes1
class MyFirstTrueClass { constructor(one, two) { this._one = one; this._two = two; this._result = null; } compute (){ this._result = this._one * this._two * this._one * this._two; } printResult (){ console.log(this._result); } } const amt = 200; let contents = new Array(amt); for (let i = 0; i < amt; i ++) { contents[i] = new MyFirstTrueClass(Math.random(), Math.random()); contents[i].compute(); contents[i].printResult(); }