Skip to content
Related Articles

Related Articles

Improve Article

What is the difference between freeze and seal in JavaScript ?

  • Last Updated : 28 Jan, 2020

Both freeze and seal are used to create non extensible objects in JavaScript, but there are plenty of differences between them. Object.seal() allows changes to the existing properties of an object whereas Object.freeze() does not allow so. Object.freeze() makes an object immune to everything even little changes cannot be made. Object.seal() prevents from deletion of existing properties but cannot prevent them from external changes.

Syntax:

Object.freeze(objectname);

Example 1: Depicts implementation of Object.seal().




<script>
    // creates an object
    var obj = {
        // assigns 10 to value 
        value: 10
    };
    // creates a non-extensible object
    Object.seal(obj);
    // the value gets updated to 20
    obj.value = 20;
    console.log(obj.value);
</script>

Output:

20

Example-1 depicts how Object.seal() is used to create a non-extensible object, but that does not prevent the value of the object to be changed and it is seen that the value gets updated to 20.



Syntax:

Object.seal(objectname);

Example 2: Depicts implementation of Object.freeze().




<script>
    // creates an object
    var obj = {
        // assigns 10 to value 
        value: 10
    };
    // creates a non-extensible object
    Object.freeze(obj);
    // updates the value
    obj.value = 20;
    // but cannot change the existing value
    console.log(obj.value);
</script>

Output:

10

Example-2 depicts how Object.freeze() is used to create a non-extensible object, but where the existing value of the object is prevented from being changed and 10 is given as the output.




My Personal Notes arrow_drop_up
Recommended Articles
Page :