8
Commonly used in several languages Enumerators make life easier for developers when they need to create a "list" of values within an application. Within the Javascript it is possible to use this structure ?
8
Commonly used in several languages Enumerators make life easier for developers when they need to create a "list" of values within an application. Within the Javascript it is possible to use this structure ?
10
Javascript does not have native Enumerators but is something that can implement with relative ease.
Example:
const corSemaforo = {
VERDE: 0,
AMARELO: 1,
VERMELHO: 2
};
let cor = corSemaforo.VERDE;
if (cor == corSemaforo.VERDE) {
console.log("O semaforo está verde");
}
It can even improve this idea and assign strings with more expressive values instead of numbers.
const corSemaforo = {
VERDE: "Verde",
AMARELO: "Amarelo",
VERMELHO: "Vermelho"
};
So if you write the value of a semaforo somewhere has the representation of it in text:
console.log(corSemaforo.VERDE); //Verde
Although it was declared const only the reference to the object is constant its contents can be modified. This causes the programmer to inadvertently change the enumerated by adding, removing or changing properties.
See the problem:
const corSemaforo = {
VERDE: "Verde",
AMARELO: "Amarelo",
VERMELHO: "Vermelho"
};
corSemaforo.AZUL = "Azul"; //agora já tem mais uma cor
delete corSemaforo["VERDE"]; //removeu o verde
console.log(corSemaforo); //agora sem VERDE e com AZUL
To avoid this problem we can use the function freeze of Object which prevents the object from being altered:
const corSemaforo = {
VERDE: "Verde",
AMARELO: "Amarelo",
VERMELHO: "Vermelho"
};
Object.freeze(corSemaforo); //impede futuras alterações
corSemaforo.AZUL = "Azul"; //já não adiciona
delete corSemaforo["VERDE"]; //já não remove
console.log(corSemaforo);
Browser other questions tagged javascript enums
You are not signed in. Login or sign up in order to post.
This answer deserves a reward.
– Oralista de Sistemas