logo

Wyliczenia w JavaScript

Wyliczenia w JavaScript są sposobem na zdefiniowanie zestawu nazwanych stałych, często używanych do reprezentowania zbioru powiązanych wartości. Chociaż JavaScript nie ma wbudowanej obsługi wyliczeń, podobną funkcjonalność można osiągnąć za pomocą obiektów lub zmiennych const, aby poprawić czytelność kodu i łatwość konserwacji.

W JavaScript , Wyliczenia lub Wyliczenia służą do reprezentowania stałego zestawu nazwanych wartości. Jednak wyliczenia nie są natywne dla JavaScript, więc zwykle są implementowane przy użyciu obiektów lub zamrożonych tablic.

Aby zapewnić niezmienność wyliczeń w JavaScript, możesz postępować zgodnie z poniższymi wskazówkami:



baza danych Java jdbc

Metoda obiektu.freeze():

Jednym ze sposobów utworzenia obiektu podobnego do Enum jest zdefiniowanie zwykłego obiektu JavaScript ze stałymi wartościami właściwości, a następnie użycie Obiekt.freeze() aby zapobiec dalszym modyfikacjom. Dzięki temu obiekt i jego właściwości nie będą mogły zostać zmienione ani zmutowane. Możesz skorzystać z Obiekt.freeze() metodę, aby zapobiec jakimkolwiek zmianom w obiekcie. Po zamrożeniu obiektu nie można dodawać, modyfikować ani usuwać żadnych jego właściwości. Możesz użyć tej metody, aby utworzyć niezmienny obiekt reprezentujący Twoje Enum.

Składnia:

Object.freeze()>

Metoda Object.defineProperty():

Metodę Object.definineProperty() można użyć do zdefiniowania właściwości, których nie można zmieniać, dodawać ani usuwać. Za pomocą tej metody można utworzyć właściwość tylko do odczytu dla każdej wartości Enum. Metodę Object.definineProperty() można użyć do zdefiniowania właściwości, których nie można zmieniać, dodawać ani usuwać. Za pomocą tej metody można utworzyć właściwość tylko do odczytu dla każdej wartości Enum.

iteruj po mapie Java

Używać Maszynopis : TypeScript to nadzbiór języka JavaScript obejmujący obsługę wyliczeń. Za pomocą TypeScriptu możesz definiować wyliczenia w sposób gwarantujący ich niezmienność.

Przykład 1: W tym przykładzie tworzymy obiekt Enum o nazwie DaysOfWeek za pomocą metody Object.freeze(). Metoda Object.freeze() sprawia, że ​​obiekt jest niezmienny, więc nie możemy dodawać, modyfikować ani usuwać właściwości obiektu.

JavaScript
const DaysOfWeek = Object.freeze({  SUNDAY: 0,  MONDAY: 1,  TUESDAY: 2,  WEDNESDAY: 3,  THURSDAY: 4,  FRIDAY: 5,  SATURDAY: 6 }); // Try to modify the enum // This will not change the Sunday variable DaysOfWeek.SUNDAY = 7;  console.log(DaysOfWeek.SUNDAY);>

Wyjście:

0>

Symbol ES6:

Innym podejściem do tworzenia wyliczenia w JavaScript jest użycie symboli ES6. Symbole to unikalne identyfikatory, których nie można powielić i które można wykorzystać do zdefiniowania stałych wartości, które gwarantują unikalność i niezmienność.

Przykład: W tym przykładzie definiujemy wyliczenie o nazwie myEnum za pomocą metody Object.freeze(), aby zapobiec modyfikacjom obiektu. Używamy Symbol() do tworzenia unikalnych symboli dla każdej wartości wyliczeniowej.

zestaw j
JavaScript
const myEnum = Object.freeze({  FOO: Symbol('foo'),  BAR: Symbol('bar'),  BAZ: Symbol('baz') }); console.log(myEnum.FOO); // Symbol(foo) // Attempting to modify the enum // values will have no effect myEnum.FOO = Symbol('newFoo'); console.log(myEnum.FOO); // Symbol(foo) // Adding a new property to the enum // object will also have no effect myEnum.QUX = Symbol('qux'); console.log(myEnum.QUX); // undefined>

Wyjście:

Symbol(foo) Symbol(foo) undefined>

Korzystanie z zamknięcia:

Możesz także użyć zamknięcia, aby utworzyć Enum. Zamknięcie to funkcja, która ma dostęp do zmiennych w swoim zewnętrznym zakresie funkcji. Tworząc funkcję wewnętrzną, która zwraca wartość, możemy ustawić zmienną w zakresie funkcji zewnętrznej jako tylko do odczytu.

Przykład: W tym przykładzie używamy zamknięcia do utworzenia obiektu o nazwie DaysOfWeek. Obiekt dni jest zdefiniowany w zewnętrznym zakresie funkcji i nie jest dostępny spoza funkcji. Funkcja wewnętrzna get zwraca wartość właściwości o podanej nazwie z obiektu dni. Ponieważ obiekt dni nie jest bezpośrednio dostępny, nie można go modyfikować spoza zamknięcia.

JavaScript
const DaysOfWeek = (function () {  const days = {  SUNDAY: 0,  MONDAY: 1,  TUESDAY: 2,  WEDNESDAY: 3,  THURSDAY: 4,  FRIDAY: 5,  SATURDAY: 6  };  return {  get: function (name) {  return days[name];  }  }; })(); // Try to modify the enum // This will not have any effect DaysOfWeek.SUNDAY = 7;  console.log(DaysOfWeek.get('SUNDAY')); // Output: 0>

Wyjście:

0>