Run details:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36
Chrome 115
Windows
Desktop
one year ago
Test name Executions per second
Test Spread operator 19475020.0 Ops/sec
Test Object.create 183913.0 Ops/sec
Test Object.assign 793299.1 Ops/sec
Script Preparation code:
AخA
 
for (i = 0; i < 10; i++) {}
Tests:
  • Test Spread operator

     
    const firstObject = { 
        sampleData: 'Hello world',
        sampleMethod: () => { return true; }
    };
    const secondObject = {...firstObject};
  • Test Object.create

     
    const firstObject = { 
        sampleData: 'Hello world',
        sampleMethod: () => { return true; }
    };
    const secondObject = Object.create(Object.getPrototypeOf(firstObject), Object.getOwnPropertyDescriptors(firstObject));
  • Test Object.assign

    x
     
    const firstObject = { 
        sampleData: 'Hello world',
        sampleMethod: () => { return true; }
    };
    const secondObject = Object.assign({}, firstObject);
    Object.setPrototypeOf(secondObject, Object.getPrototypeOf(firstObject));