मैंने पाया कि डोमिनिक ने जिस समाधान का सुझाव दिया था वह सबसे अच्छा था, लेकिन यह अभी भी "कॉन्स्ट" घोषणा की एक विशेषता को याद करता है। जब आप JS में "const" कीवर्ड के साथ एक कॉन्स्टेंट की घोषणा करते हैं, तो स्थिरांक का अस्तित्व पार्स समय पर चेक किया जाता है, रनटाइम पर नहीं। इसलिए यदि आपने अपने कोड में बाद में कहीं स्थिरांक का नाम गलत लिखा है, तो आपको अपना नोड शुरू करने का प्रयास करते समय एक त्रुटि मिलेगी। जो कहीं अधिक बेहतर गलत वर्तनी की जाँच है।
यदि आप परिभाषित के साथ निरंतर परिभाषित करते हैं () फ़ंक्शन जैसे डोमिनिक ने सुझाव दिया है, तो आपको त्रुटि नहीं मिलेगी यदि आपने निरंतर को गलत वर्तनी दी है, और गलत वर्तनी वाले मान का मान अपरिभाषित हो जाएगा (जिससे डीबगिंग सिरदर्द हो सकता है)।
लेकिन मुझे लगता है कि यह सबसे अच्छा हम प्राप्त कर सकते हैं।
इसके अतिरिक्त, यहाँ constans.js में डोमिनिक के कार्य का एक प्रकार का सुधार है:
global.define = function ( name, value, exportsObject )
{
if ( !exportsObject )
{
if ( exports.exportsObject )
exportsObject = exports.exportsObject;
else
exportsObject = exports;
}
Object.defineProperty( exportsObject, name, {
'value': value,
'enumerable': true,
'writable': false,
});
}
exports.exportObject = null;
इस तरह आप अन्य मॉड्यूल में डिफाइन () फंक्शन का उपयोग कर सकते हैं, और यह आपको कॉन्स्टैंटों.जैस मॉड्यूल और कॉन्सटेंट दोनों को अपने मॉड्यूल के अंदर परिभाषित करने की अनुमति देता है जिससे आपने फंक्शन को बुलाया। मॉड्यूल स्थिरांक की घोषणा तब दो तरीकों से (script.js में) की जा सकती है।
प्रथम:
require( './constants.js' );
define( 'SOME_LOCAL_CONSTANT', "const value 1", this ); // constant in script.js
define( 'SOME_OTHER_LOCAL_CONSTANT', "const value 2", this ); // constant in script.js
define( 'CONSTANT_IN_CONSTANTS_MODULE', "const value x" ); // this is a constant in constants.js module
दूसरा:
constants = require( './constants.js' );
// More convenient for setting a lot of constants inside the module
constants.exportsObject = this;
define( 'SOME_CONSTANT', "const value 1" ); // constant in script.js
define( 'SOME_OTHER_CONSTANT', "const value 2" ); // constant in script.js
इसके अलावा, यदि आप चाहते हैं कि परिभाषित () फ़ंक्शन केवल स्थिरांक मॉड्यूल से बुलाया जाए (वैश्विक ऑब्जेक्ट को ब्लोट नहीं करना), तो आप इसे इस तरह परिभाषित करते हैं जैसे कि constants.js:
exports.define = function ( name, value, exportsObject )
और इसे script.js में इस तरह उपयोग करें:
constants.define( 'SOME_CONSTANT', "const value 1" );
exports
। इसके बारे में अजीब क्या है?