Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
80
rated 0 times [  87] [ 7]  / answers: 1 / hits: 82358  / 7 Years ago, sat, june 17, 2017, 12:00:00

I recently read about ES6 const keyword and I can understand its importance when having something like this:



(function(){
const PI = 3.14;
PI = 3.15; // Uncaught TypeError: Assignment to constant variable
})();


So, nobody can change my PI variable.



The misunderstanding I have is that I don't understand in which situation the use of const with objects can make sense (other than preventing people to do myObj = newValue;).



(function(){
const obj = {a:1 ,b: 2, c:3};
//obj = {x:7 , y:8, z: 9}
//This is good
//TypeError: Assignment to constant variable.

obj.a=7; obj.b=8 ; obj.c=9;
console.log(obj); //outputs: {a: 7, b: 8, c: 9}
})();


So when declaring an object: when should I say: Now I must declare my object with const?


More From » javascript

 Answers
66

it is a common misconception around the web, CONST doesn't creates immutable variables instead it creates immutable binding.



eg.



 const temp1 = 1;
temp1 = 2 //error thrown here.


But



 temp1.temp = 3 // no error here. Valid JS code as per ES6


so const creates a binding to that particular object. const assures that variable temp1 won't have any other object's Binding.



Now coming to Object. we can get immutable feature with Object by using Object.freeze



const temp3 = Object.freeze( {a:3,b:4})
temp3.a = 2 // it wont update the value of a, it still have 3
temp3.c = 6 // still valid but wont change the object

[#57416] Thursday, June 15, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
lailab

Total Points: 706
Total Questions: 102
Total Answers: 95

Location: Falkland Islands
Member since Mon, Jul 13, 2020
4 Years ago
;