What is the difference between freeze and seal in JavaScript ?

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().

filter_none

edit
close

play_arrow

link
brightness_4
code

<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>

chevron_right


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().

filter_none

edit
close

play_arrow

link
brightness_4
code

<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>

chevron_right


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.

full-stack-img




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.