# Immutable Object

# level 1

Object.defineProperty(obj, prop, {
  writable: false,
  configurable: false
})
1
2
3
4

# level 2

Object.preventExtensions() forbid object to creating any new property.

var myObject = {a:2};
Object.preventExtensions( myObject );
myObject.b = 3;
myObject.b; // undefined
1
2
3
4

# level 3

Object.seal() = Object.preventExtensions() + configurable: false

Object.seal(obj)
1

# level 4

Object.freeze() = Object.seal() + writable: false

Object.freeze()
1