अपरिवर्तनीय संरचनाओं के लिए मुझे विश्वास है कि आप Immutable.js देख रहे हैं।
@Andreas_Gnyp के रूप में कह रहा है, ES6 तक वहां जावास्क्रिप्ट में कोई let
/const
है। (न ही function(const a) {...}
होगा जब ES6 बाहर हो और पूरी तरह से समर्थित हो।) यदि आप const
का उपयोग करना चाहते हैं, तो आप या तो अपनी const
सुविधा लागू कर सकते हैं, या कुछ तृतीय पक्ष ES6-to-ES5 कंपाइलर की सहायता से ES6 नोटेशन का उपयोग शुरू कर सकते हैं, Babel के रूप में।
हालांकि, ध्यान रखें कि const
ES6 नोटेशन में परिवर्तनीय अपरिवर्तनीय नहीं है। जैसे const a = [1, 2]; a.push(3);
एक पूरी तरह से वैध प्रोग्राम है और a
[1, 2, 3]
बन जाएगा। const
केवल आपको a
को पुन: असाइन करने से रोकता है, ताकि आप a = []
या a = {}
या जो भी const a = [1, 2];
पहले से परिभाषित (उस विशेष दायरे में) को पहले से परिभाषित नहीं कर सकें।
function hasConstantParameters(...args) {
const [a, b] = args;
}
Immutable.js सुनिश्चित करें कि, जब आप var a = fromJS([1, 2]);
को परिभाषित करने और प्राप्त समारोह a.push(3)
में एक समारोह पैरामीटर के रूप में a
गुजरती हैं, a
को प्रभावित नहीं करेगा कर देगा। क्या आप यही हासिल करना चाहते हैं?
स्रोत
2015-07-31 11:32:50
यह वास्तव में इसके लिए एक दिलचस्प समाधान है। यदि यह इतना बदसूरत नहीं था, तो मैं इसका उपयोग करना शुरू कर दूंगा। –
'फ़ंक्शन के बारे में कॉन्स्टेंट पैरामीटर (... तर्क) {const [a, b] = args; }; '? –
@ बुग्सबनी यह काफी समान है। हालांकि, मुझे किसी अन्य पहचानकर्ता ('args') की शुरूआत पसंद नहीं है, और मैंने जानबूझकर सामान्य स्थान पर कोई पैरामीटर नहीं डाला लेकिन सब कुछ' कॉन्स्ट 'घोषणा में ले जाया गया। – Bergi