Run details:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0
Chrome 127
Windows
Desktop
7 months ago
Test name Executions per second
Test Spread operator 28109708.0 Ops/sec
Test Object.create 472043.8 Ops/sec
Test Object.assign 1667937.4 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));