Open Playground
JS ObjectsLesson #232

JavaScript Object Protection

// Prevents re-assignment

Object Protection Methods

Example

Example Code

javascript
Try it Yourself
// Prevents re-assignment

const car = {type:"Fiat", model:"500", color:"white"};

// Prevents adding object properties

Object.preventExtensions(object)

// Returns true if properties can be added to an object

Object.isExtensible(object)

// Prevents adding and deleting object properties

Object.seal(object)

// Returns true if object is sealed

Object.isSealed(object)

// Prevents any changes to an object

Object.freeze(object)

// Returns true if object is frozen

Object.isFrozen(object)

Using const

The most common way to protect an object from being changed is by using the const keyword.

With const you cannot re-assign the object, but you can change the value of a property, delete a property or create a new property.


Share

JavaScript Object.preventExtensions()

The Object.preventExtensions() method prevents adding properties to an object.

Example

Example Code

javascript
Try it Yourself
// Create Object

const person = {firstName:"John", lastName:"Doe"};

// Prevent Extensions

Object.preventExtensions(person);

// This will throw an error

person.nationality = "English";

Since arrays are objects, arrays can be prevented from extensions too:

Example

Example Code

javascript
Try it Yourself
// Create Array

const fruits = ["Banana", "Orange", "Apple", "Mango"];

Object.preventExtensions(fruits);

// This will throw an error:

fruits.push("Kiwi");
The Object.preventExtensions() method will fail silently in non-strict mode and throw a TypeError in strict mode.

JavaScript Object.isExtensible()

You can use Object.isExtensible() to check if an object is extensible.

The Object.isExtensible() returns true if an object is extensible.

Examples

Example Code

javascript
Try it Yourself
// Create Object

const person = {firstName:"John", lastName:"Doe"};

// Prevent Extensions

Object.preventExtensions(person);

// This will return false

let answer = Object.isExtensible(person);

JavaScript Object.seal()

The Object.seal() method prevents additions or deletions of new properties.

The Object.seal() method makes existing properties non-configurable.

The Object.isSealed() method can be used to check if an object is sealed.

Example

Example Code

javascript
Try it Yourself
"use strict"

// Create Object

const person = {

  firstName: "John",

  lastName: "Doe",

  age: 50,

  eyeColor: "blue"

};

// Seal Object

Object.seal(person)

// This will throw an error

delete person.age;

Since arrays are objects, arrays can be sealed too:

Example

Example Code

javascript
Try it Yourself
// Create Array

const fruits = ["Banana", "Orange", "Apple", "Mango"];

Object.seal(fruits);

// This will throw an error:

fruits.push("Kiwi");
The Object.seal() method will fail silently in non-strict mode and throw a TypeError in strict mode.

JavaScript Object.isSealed()

The Object.isSealed() method can be used to check if an object is sealed.

The Object.isSealed() returns true if an object is sealed.

Examples

Example Code

javascript
Try it Yourself
// Create Object

const person = {firstName:"John", lastName:"Doe"};

// Seal Object

Object.seal(person);

// This will return true

let answer = Object.isSealed(person);

JavaScript Object.freeze()

The Object.freeze() method prevents any changes to an object.

Frozen objects are read-only.

No modification, addition or deletion of properties are allowed.

Example

Example Code

javascript
Try it Yourself
"use strict"

// Create Object

const person = {

  firstName: "John",

  lastName: "Doe",

  age: 50,

  eyeColor: "blue"

};

// Freeze Object

Object.freeze(person)

// This will throw an error

person.age = 51;

Since arrays are objects, arrays can be frozen too:

Example

Example Code

javascript
Try it Yourself
const fruits = ["Banana", "Orange", "Apple", "Mango"];

Object.freeze(fruits);

// This will trow an error:

fruits.push("Kiwi");
The Object.freeze() method will fail silently in non-strict mode and throw a TypeError in strict mode.

JavaScript Object.isFrozen()

The Object.isFrozen() method can be used to check if an object is frozen.

The Object.isFrozen() returns true if an object is frozen.

Examples

Example Code

javascript
Try it Yourself
// Create Object

const person = {firstName:"John", lastName:"Doe"};

// Freeze Object

Object.freeze(person);

// This will return true

let answer = Object.isFrozen(person);

Advanced Chapters: > JavaScript Object Definitions > JavaScript Object Advanced this > JavaScript Object Iterations > JavaScript Object Getters & Setters > JavaScript Object Management > JavaScript Object Protection > JavaScript Object Prototypes > JavaScript Object Reference

Interactive Code Examples

Example 1

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
// Prevents re-assignment

const car = {type:"Fiat", model:"500", color:"white"};



// Prevents adding object properties

Object.preventExtensions(object)


// Returns true if properties can be added to an object

Object.isExtensible(object)


// Prevents adding and deleting object properties

Object.seal(object)


// Returns true if object is sealed

Object.isSealed(object)


// Prevents any changes to an object

Object.freeze(object)


// Returns true if object is frozen

Object.isFrozen(object)

JS Example 2

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
// Create Object

const person = {firstName:"John", lastName:"Doe"};



// Prevent Extensions

Object.preventExtensions(person);



// This will throw an error

person.nationality = "English";

JS Example 3

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
// Create Array

const fruits = ["Banana", "Orange", "Apple", "Mango"];

Object.preventExtensions(fruits);



// This will throw an error:

fruits.push("Kiwi");

Examples

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
// Create Object

const person = {firstName:"John", lastName:"Doe"};



// Prevent Extensions

Object.preventExtensions(person);



// This will return false

let answer = Object.isExtensible(person);

JS Example 5

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
"use strict"

// Create Object

const person = {

  firstName: "John",

  lastName: "Doe",

  age: 50,

  eyeColor: "blue"

};



// Seal Object

Object.seal(person)



// This will throw an error

delete person.age;

JS Example 6

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
// Create Array

const fruits = ["Banana", "Orange", "Apple", "Mango"];

Object.seal(fruits);



// This will throw an error:

fruits.push("Kiwi");