Would the following make the objects fulfil all characteristics that enums have in JavaScript? Something like:
my.namespace.ColorEnum = {
RED : 0,
GREEN : 1,
BLUE : 2
}
// later on
if(currentColor == my.namespace.ColorEnum.RED) {
// whatever
}
Or is there some other way I can do this?
Since 1.8.5 it’s possible to seal and freeze the object, so define the above as:
or
and voila! JS enums.
However, this doesn’t prevent you from assigning an undesired value to a variable, which is often the main goal of enums:
One way to ensure a stronger degree of type safety (with enums or otherwise) is to use a tool like TypeScript or Flow.
Quotes aren’t needed but I kept them for consistency.