They are functions that may appear to do the same action but have significant differences. And it was difficult for me to learn it. I don't know why but they always confused me.
👉 Object.freeze(): It prevents you from adding new properties, removing existing properties and modifying them.
👉 Object.seal(): You can modify existing properties but you can't delete or add new ones.
CRUD Operations
If we differentiate them through the CRUD operations: Create - Read - Update - Delete, we obtain the following comparison.
Create Read Update Delete
Object.freeze() ❌ ☑️ ❌ ❌
Object.seal() ❌ ☑️ ☑️ ❌
The wonderful world of Javascript. That's all for today :)
Latest comments (5)
nice
Sounds like a job for deep-freeze npmjs.com/package/deep-freeze
Kinda related, luckily we will soon get
Record
andTuple
, two types that are "frozen by default". The proposal is in stage 2, but you can test it already in Babel. The main difference is that it has deep equality, so:Cheers!
Whoa! That's fascinating!