Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Object cloning
(version: 0)
Comparing performance of:
Spread vs Object.assign() vs Object.create() vs Object.defineProperties(); vs Object.fromEntries(Object.entries()) vs structuredClone() vs JSON.parse()
Created:
3 years ago
by:
Registered User
Jump to the latest result
Script Preparation code:
obj = { a: 'testing', b: 4, p: { value: 42, writable: true, enumerable: true, configurable: true, }, }
Tests:
Spread
const clone = { ...obj }
Object.assign()
const clone = Object.assign({}, obj)
Object.create()
const clone = Object.create(obj)
Object.defineProperties();
let clone = {}; Object.defineProperties(clone, Object.getOwnPropertyDescriptors(obj));
Object.fromEntries(Object.entries())
const clone = Object.fromEntries(Object.entries(obj))
structuredClone()
const clone = structuredClone(obj)
JSON.parse()
const clone = JSON.parse(JSON.stringify(obj))
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (7)
Previous results
Fork
Test case name
Result
Spread
Object.assign()
Object.create()
Object.defineProperties();
Object.fromEntries(Object.entries())
structuredClone()
JSON.parse()
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:
assign vs spread 196987356211
Object.assign mutation vs spread
Object.assign vs mutation
Deep cloning of arrays with objects
Comments
Confirm delete:
Do you really want to delete benchmark?