+ 2
How does "freeze" function in JavaScript?
Any doubt about, after some challenge...
5 Antworten
+ 1
Paolo De Nictolis hi,
Object are used to store everything in Javascript, and Functions that have access to the object can modify the object, whether intentionally or accidentally. To prevent modification of our objects, one of the techniques is to use Object.freeze(). This method prevents the modification of existing property attributes and values, and prevents the addition of new properties.
Let’s see another example:
var learner = {
name: “Paolo”,
role: “Developer”
};
Object.freeze(learner);
(function() {
“use strict”;
// TypeError: Can’t add property department, object is not extensible
learner.dept= “IT”;
})();
Object.freeze method takes an object and renders it immutable
So above will give error so to shot out that we can use freezing methods like this ways.
If you don’t wish to throw errors all over the place, JavaScript provides another method Object.isFrozen() to detect whether the object is frozen.
Continue in next answer.........
+ 2
Paolo De Nictolis by freezing the object cities you have make your object immutable which means the object will remain same so this way when you assign new city with Barcelona that will make no change in city object value and value will be remain as Madrid which is define earlier this way when you are comparing the console you will getting true as output. You can see that behavior by putting some printing statement.
var cities = {
spain: "Madrid",
italy: "Rome",
usa: "Boston"
};
Object.freeze(cities);
cities2 = cities;
console.log(cities2);
cities2.spain = "Barcelona";
console.log(cities2.spain);
console.log(cities == cities2);
+ 1
var learner = {
name: “Paolo”,
role: “Developer”
};
Object.freeze(learner);
if (Object.isFrozen(learner)) {
alert(“learner is frozen!”);
}
This will froze your output at the console screen or browser screen.
Have some 🍎 🍎 🍎 🍎 🍎
+ 1
var cities = {
spain: "Madrid",
italy: "Rome",
usa: "Boston"
};
Object.freeze(cities);
cities2 = cities;
cities2.spain = "Barcelona";
console.log(cities == cities2);
Explain me why console logs "true"
0
All clear now!