var obj = {
a: 1,
b: 2
};
Object.freeze(obj);
obj.newField = 3; // You can't assign new field , or change current fields
ऊपर के उदाहरण यह पूरी तरह से अपने वस्तु अपरिवर्तनीय बना देता है।
उदाहरण के बाद देखते हैं।
const obj = {
a: 1,
b: 2
};
obj.a = 13; // You can change a field
obj.newField = 3; // You can assign new field.
यह कोई त्रुटि नहीं देगा।
लेकिन आपको लगता है कि
const obj = {
a: 1,
b: 2
};
obj = {
t:4
};
तरह का प्रयास करें ऐसा एक त्रुटि "obj केवल पढ़ने के लिए" फेंक देते हैं।
एक और उपयोग के मामले
const obj = {a:1};
var obj = 3;
यह Duplicate declaration "obj"
फेंक होगा इसके अलावा mozilla डॉक्स const स्पष्टीकरण
स्थिरांक घोषणा एक मूल्य के केवल पढ़ने के लिए संदर्भ बनाता है के अनुसार। यह का मतलब यह नहीं है कि यह मान अपरिवर्तनीय है, केवल परिवर्तनीय पहचानकर्ता को फिर से असाइन नहीं किया जा सकता है।
यह उदाहरण babeljs ES6 सुविधाओं के अनुसार बनाए गए हैं।
स्रोत
2015-10-14 11:59:22
मैंने अपनी बिल्ड प्रक्रिया में [babeljs] (https://babeljs.io/docs/learn-es2015/) का उपयोग करने के लिए लिया है, इसलिए मैं मुख्य रूप से इन जैसे संगतता मुद्दों को अनदेखा कर सकता हूं। – spender
नहीं - वे अलग-अलग चीजें करते हैं। कॉन्स पुन: असाइनमेंट रोकता है (उदाहरण के लिए आप x = 1 नहीं कर सकते; x = 2); फ्रीज उत्परिवर्तन रोकता है (उदाहरण के लिए आप ऑब्जेक्ट नहीं कर सकते हैं। फ्रीज़ (एक्स); x.a = 2); – joews