Javascript - How to define constants/values used by multiple function

I understand Javascript do have the notion of constant.  However I would like to use a set of constant value across multiple functions.  How will I do that?
For example I have the following set of variables that I would like to treat as constant and used in different functions.
     var FORM_TYPE_CREATE = 1;
     var FORM_TYPE_UPDATE = 2;
     var FORM_TYPE_READ_ONLY = 3;
     var FORM_TYPE_DISABLED = 4;
     var FORM_TYPE_QUICK_CREATE = 5;
     var FORM_TYPE_BULK_EDIT = 6;
tommym121Asked:
Who is Participating?
 
jjperezaguinagaCommented:
Greetings tommym121,

I agree with basicinstinct, it's just a naming convention. Now, you could do closures instead and wrap your constants in a function:

function CONSTANTS()
{
        constants = {};
        //List your constants
        constants.FORM_TYPE_CREATE = 1;
        ....
        return function () {
             return constants;    
        };

}

Open in new window


This way you can encapsulate your "constants" in a local function that does not clutter the global namespace, and it's available for read only purposes.

//Retrieve an specific constant during run-time
var form_type_create = CONSTANTS().FORM_TYPE_CREATE;

Open in new window


You can even go fancy and use augmented loosely pattern in order to update the values at some point

CONSTANTS = (CONSTANTS(constants_object, new_value_for_form_type_create)
{
   var old_constant = constants_object.FORM_TYPE_CREATE;
   constants_object.FORM_TYPE_CREATE = new_value_for_form_type_create || old_constant;
   //In case, for instance, no value was provided.
})(CONSTANTS(), 2)

Open in new window


Don't you just love Javascript?
Cheers!
-JJ
0
 
basicinstinctCommented:
you have already done it - put your vars in uppercase. that's how you define a constant in javascript.
obviously it's not really a constant, the naming convention simply tells other developers that they should treat these as constants and not change the vlaues OR DIE.
0
 
basicinstinctCommented:
unless you are in firefox only... then you have "const"

https://developer.mozilla.org/en/JavaScript/Reference/Statements/const
0
 
tommym121Author Commented:
Thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.