Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
ES6 Class vs Prototype vs Object Literal vs Function vs Function with object destructuring
Test the speed and memory usage using 4 different techniques for constructing class objects (or rather calling functions).
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/121.0.0.0 Safari/537.36
Browser:
Chrome 121
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
ES6 Class
367685.2 Ops/sec
Function Prototype
325611.4 Ops/sec
Object Literal
1133903.5 Ops/sec
Basic function
90338080.0 Ops/sec
Basic functions with object destructuring
95291376.0 Ops/sec
Tests:
ES6 Class
class Point { constructor(x, y){ this.x = x; this.y = y; } add(point){ return new Point(this.x + point.x, this.y + point.y); } sub(point){ return new Point(this.x - point.x, this.y - point.y); } } var p1 = new Point(10, 10); var p2 = new Point(10, -10); var sum = p1.add(p2); var dif = p1.sub(p2);
Function Prototype
function Point(x, y){ this.x = x; this.y = y; } Point.prototype.add = function(point){ return new Point(this.x + point.x, this.y + point.y); } Point.prototype.sub = function(point){ return new Point(this.x - point.x, this.y - point.y); } var p1 = new Point(10, 10); var p2 = new Point(10, -10); var sum = p1.add(p2); var dif = p1.sub(p2);
Object Literal
function Point(x, y){ return { x, y, add: (point)=>Point(this.x + point.x, this.y + point.y), sub: (point)=>Point(this.x - point.x, this.y - point.y) } } var p1 = Point(10, 10); var p2 = Point(10, -10); var sum = p1.add(p2); var dif = p1.sub(p2);
Basic function
function Point(x, y){ return { x, y, }; } const add = (pointa, pointb) =>({ x: pointa.x + pointb.x, y: pointb.y + pointb.y }); const sub = (pointa, pointb) =>({ x: pointa.x - pointb.x, y: pointa.y - pointb.y }); var p1 = Point(10, 10); var p2 = Point(10, -10); var sum = add(p1, p2); var dif = sub(p1, p2);
Basic functions with object destructuring
function Point(x, y){ return { x, y, }; } const add = ({ x:xa, y:ya }, { x:xb, y:yb }) =>({ x: xa + xb, y: ya + yb }); const sub = ({ x:xa, y:ya }, { x:xb, y:yb }) =>({ x: xa - xb, y: ya - yb }); var p1 = Point(10, 10); var p2 = Point(10, -10); var sum = add(p1, p2); var dif = sub(p1, p2);