कैसे स्थिरांक वस्तुओं के गुणों के रूप में सेट नहीं किया जा सकता है जो स्वयं चर हैं?कॉन्स्ट कीवर्ड का उपयोग कर ऑब्जेक्ट्स के गुणों के रूप में जावास्क्रिप्ट स्थिरांक कैसे बनाएं?
const a = 'constant' // all is well
// set constant property of variable object
const window.b = 'constant' // throws Exception
// OR
var App = {}; // want to be able to extend
const App.goldenRatio= 1.6180339887 // throws Exception
और संदर्भ द्वारा पारित स्थिरांक कैसे अचानक परिवर्तनीय हो जाते हैं? संपादित करें: मुझे पता है कि ऐप नहीं होगा (या बल्कि ... नहीं होना चाहिए) mutable हो; यह सिर्फ एक प्रेक्षण है ...
(function() {
const App;
// bunch of code
window.com_namespace = App;
}());
window.com_namespace; // App
window.com_namespace = 'something else';
window.com_namespace; // 'something else'
कैसे एक अच्छी तरह से संगठित, एक्स्टेंसिबल, वस्तु उन्मुख, अकेले स्थिरांक युक्त पुस्तकालय namespaced कर सकते हैं इन सीमाओं के साथ किया जा सकता है?
संपादित करें: मैं zi42 विश्वास है, लेकिन मैं सिर्फ पूछने के लिए why
संदर्भ द्वारा पारित वस्तुओं नहीं हैं? – danronmoon
हां, लेकिन 'const obj = {}' थोड़े बेकार है क्योंकि संदर्भ स्थिर रहेगा, लेकिन आप अभी भी ऑब्जेक्ट को संशोधित कर सकते हैं। –
नहीं ऑब्जेक्ट्स * नहीं * "संदर्भ द्वारा पारित" हैं (यह सबसे अच्छा एक अस्पष्ट वाक्यांश है)। एक कार्यान्वयन आम तौर पर "संदर्भ के * मूल्य * से गुजरता है" लेकिन जावास्क्रिप्ट में महत्वपूर्ण बात यह है कि [ऑब्जेक्ट शेयरिंग सेमेन्टिक्स द्वारा कॉल करें] (http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_sharing)। मजेदार तथ्य: * ईसीएमएस्क्रिप्ट विनिर्देश शब्द "संदर्भ" * का उपयोग नहीं करता है। –