Tests:
  • function instance

    AخA
     
    function func(v) {
        const instance = { a: v }
        instance.b = function() {
            return instance.a
        }
        return instance
    }
    for (let i = 0; i < 100; i++) {
        const instance = func(i)
        instance.b()
        instance.b()
        instance.b()
        instance.b()
        instance.b()
    }
  • new Class

     
    class Class {
        constructor(v) {
            this.a = v
            this.b = function() {
                return this.a
            }
        }
    }
    for (let i = 0; i < 100; i++) {
        const instance = new Class(i)
        instance.b()
        instance.b()
        instance.b()
        instance.b()
        instance.b()
    }
  • new Function

    x
     
    function Func(v) {
        this.a = v
        this.b = function() {
            return this.a
        }
    }
    for (let i = 0; i < 100; i++) {
        const instance = new Func(i)
        instance.b()
        instance.b()
        instance.b()
        instance.b()
        instance.b()
    }
  • new Class singletone function

     
    function func() {
        return this.a
    }
    class Class {
        constructor(v) {
            this.a = v
            this.b = func
        }
    }
    for (let i = 0; i < 100; i++) {
        const instance = new Class(i)
        instance.b()
        instance.b()
        instance.b()
        instance.b()
        instance.b()
    }
  • function lexical

     
    function func(v) {
        let a = v
        function b() {
            return a
        }
        return { b }
    }
    for (let i = 0; i < 100; i++) {
        const instance = func(i)
        instance.b()
        instance.b()
        instance.b()
        instance.b()
        instance.b()
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    function instance
    new Class
    new Function
    new Class singletone function
    function lexical

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Mobile Safari/537.36
Chrome Mobile 118 on Android
View result in a separate tab
Test name Executions per second
function instance 814419.3 Ops/sec
new Class 111140.0 Ops/sec
new Function 113115.6 Ops/sec
new Class singletone function 113687.3 Ops/sec
function lexical 1004202.2 Ops/sec