You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Object.seal vs Object.freeze vs Object.preventExtensions()
Object.seal()
/** * The Object.seal() method seals an object: that is, prevents new properties to be getting added and making all existing properties * non-configurable. * * @Reference: * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/seal */constlanguage={name: 'JavaScript',author: 'Brendan Eich'};Object.seal(language)// adding propertylanguage['createdAt']="Netscape";// not allowed// deleting propertydeletelanguage.name;// not allowed// changing propertylanguage.name="Java";// allowedconsole.log(language);//{"name":"Java","author":"Brendan Eich"}
Object.preventExtensions()
/*** Object.preventExtensions() prevents new properties being getting added. We can modify or delete the properties.** @Reference:* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/preventExtensionsl**/constlanguage={name: 'JavaScript',author: 'Brendan Eich'};Object.preventExtensions(language);// adding propertylanguage['createdAt']="Netscape";// not allowed// deleting propertydeletelanguage.author;// allowed// changing propertylanguage.name="Java";// allowedconsole.log(language);//{"name":"Java"}
Object.freeze()
/*** Object.freeze() freezes the object, that means it prevents new properties from being added, prevents existing properties getting removed, or existing properties to get changed ot their enumerability, configurability or writability getting changed.** it freezes SHALLOW, nested objects is not frozen here** @Reference:* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze**/Object.freeze(language);// adding propertylanguage['createdAt']="Netscape";// not allowed// deleting propertydeletelanguage.author;// not allowed// changing propertylanguage.name="Java";//not allowedconsole.log(language);//{"name":"JavaScript","author":"Brendan Eich"}