Object.defineProperty vs Object.assign (immutable) vs Object.assign (mutable) vs Object.defineProperty on Proxy vs Property direct on Proxy vs Direct Object Property vs Object.defineProperty with getter and setter vs Object.defineProperties (plural) with getter and setter vs Object.defineProperty on Proxy with getter and setter vs Object.assign on Proxy (mutable)Fastest: Direct Object Property (145.3x faster)
108,814 ops/sec
35,456 ops/sec
34,454 ops/sec
28,717 ops/sec
25,809 ops/sec
22,909 ops/sec
19,634 ops/sec
13,121 ops/sec
749 ops/sec
Results show median performance across all community submissions. Run this benchmark yourself to verify on your device.
| Test case name | Result |
|---|---|
| Object.defineProperty | |
| Object.assign (immutable) | |
| Object.assign (mutable) | |
| Object.defineProperty on Proxy | |
| Property direct on Proxy | |
| Direct Object Property | |
| Object.defineProperty with getter and setter | |
| Object.defineProperties (plural) with getter and setter | |
| Object.defineProperty on Proxy with getter and setter | |
| Object.assign on Proxy (mutable) |
| Test name | Executions per second |
|---|---|
| ✓ Direct Object Property | 111,448 Ops/sec |
| Object.defineProperty | 102,652 Ops/sec |
| Object.assign (mutable) | 60,209 Ops/sec |
| Object.defineProperty with getter and setter | 52,807 Ops/sec |
| Property direct on Proxy | 41,643 Ops/sec |
| Object.defineProperty on Proxy | 25,596 Ops/sec |
| Object.assign on Proxy (mutable) | 25,217 Ops/sec |
| Object.defineProperty on Proxy with getter and setter | 18,720 Ops/sec |
| Object.defineProperties (plural) with getter and setter | 16,651 Ops/sec |
| Object.assign (immutable) | 14,023 Ops/sec |