Object.freeze() vs Object.seal() vs Object.preventExtensions() - jellyfish-tom/TIL GitHub Wiki

Object.freeze() vs Object.seal() vs Object.preventExtensions()

Object.freeze()

  • Prevents adding new properties
  • Prevents removing existing properties
  • Prevents changing immediate properties of object (nested properties are still mutable)

Object.seal()

  • Prevents adding new properties
  • Prevents removing existing properties
  • Values of existing properties can be changed

Object.preventExtensions()

  • Prevents adding new properties
  • Existing properties can be removed and their values can be changed