Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Spread operator vs Object.assign vs Object.create V2
(version: 0)
Comparing performance of:
Test Spread operator vs Test Object.create vs Test Object.assign
Created:
5 years ago
by:
Guest
Jump to the latest result
Script Preparation code:
for (i = 0; i < 10; i++) {}
Tests:
Test Spread operator
const firstObject = { sampleData: 'Hello world', sampleMethod: () => { return true; } }; const secondObject = {...firstObject}; Object.keys(firstObject).forEach((key) => { if (RegExp('Method').test(key)) { Object.defineProperty(secondObject, key, { value: undefined }); } });
Test Object.create
const firstObject = { sampleData: 'Hello world', sampleMethod: () => { return true; } }; const secondObject = Object.create(Object.getPrototypeOf(firstObject), Object.getOwnPropertyDescriptors(firstObject)); Object.keys(firstObject).forEach((key) => { if (RegExp('Method').test(key)) { Object.defineProperty(secondObject, key, { value: undefined }); } });
Test Object.assign
const firstObject = { sampleData: 'Hello world', sampleMethod: () => { return true; } }; const secondObject = Object.assign({}, firstObject); Object.setPrototypeOf(secondObject, Object.getPrototypeOf(firstObject)); Object.keys(firstObject).forEach((key) => { if (RegExp('Method').test(key)) { Object.defineProperty(secondObject, key, { value: undefined }); } });
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (3)
Previous results
Fork
Test case name
Result
Test Spread operator
Test Object.create
Test Object.assign
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Related benchmarks:
object assign vs object spread on growing objects
JavaScript spread operator vs Object.assign performance create new
JavaScript spread operator vs Object.assign performance with overwite
JavaScript spread operator vs Object.assign performance - Kien Nguyen
Object.assign() vs spread operator (New object)
Comments
Confirm delete:
Do you really want to delete benchmark?