logo

JavaScript의 열거형

JavaScript의 열거형 관련 값 모음을 나타내는 데 자주 사용되는 명명된 상수 집합을 정의하는 방법입니다. JavaScript에는 열거형에 대한 기본 지원이 없지만 객체나 const 변수를 사용하여 유사한 기능을 구현하여 코드 가독성과 유지 관리성을 향상시킬 수 있습니다.

셀레늄 튜토리얼

~ 안에 자바스크립트 , 열거 또는 열거는 명명된 값의 고정된 집합을 나타내는 데 사용됩니다. 그러나 Enum은 JavaScript에 기본적으로 포함되지 않으므로 일반적으로 객체나 고정 배열을 사용하여 구현됩니다.

JavaScript에서 Enum의 불변성을 보장하려면 다음 지침을 따르세요.

Object.freeze() 메서드:

Enum과 유사한 객체를 생성하는 한 가지 방법은 상수 속성 값을 사용하여 일반 JavaScript 객체를 정의한 다음 다음을 사용하는 것입니다. 객체.동결() 더 이상의 수정을 방지하기 위해. 이렇게 하면 객체와 해당 속성이 변경되거나 변경될 수 없습니다. 당신은 사용할 수 있습니다 객체.동결() 객체에 대한 변경을 방지하는 방법입니다. 개체가 고정되면 해당 속성을 추가, 수정 또는 삭제할 수 없습니다. 이 메서드를 사용하여 Enum을 나타내는 불변 개체를 만들 수 있습니다.

통사론:

Object.freeze()>

Object.defineProperty() 메서드:

Object.defineProperty() 메서드를 사용하여 변경, 추가 또는 삭제할 수 없는 속성을 정의할 수 있습니다. 이 메서드를 사용하여 각 Enum 값에 대한 읽기 전용 속성을 만들 수 있습니다. Object.defineProperty() 메서드를 사용하여 변경, 추가 또는 삭제할 수 없는 속성을 정의할 수 있습니다. 이 메서드를 사용하여 각 Enum 값에 대한 읽기 전용 속성을 만들 수 있습니다.

사용 타입스크립트 : TypeScript는 Enum 지원을 포함하는 JavaScript의 상위 집합입니다. TypeScript를 사용하면 불변성을 보장하는 방식으로 Enum을 정의할 수 있습니다.

예시 1: 이 예에서는 Object.freeze()를 사용하여 DaysOfWeek라는 Enum 개체를 만듭니다. Object.freeze() 메서드는 객체를 불변으로 만들기 때문에 객체의 속성을 추가, 수정 또는 삭제할 수 없습니다.

자바스크립트
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);>

산출:

0>

ES6 기호:

JavaScript에서 Enum을 생성하는 또 다른 접근 방식은 ES6 기호를 사용하는 것입니다. 기호는 복제할 수 없는 고유 식별자이며 고유하고 변하지 않는 것으로 보장되는 상수 값을 정의하는 데 사용할 수 있습니다.

예: 이 예에서는 객체 수정을 방지하기 위해 Object.freeze()를 사용하여 myEnum이라는 열거형을 정의합니다. 우리는 각 열거형 값에 대한 고유 기호를 생성하기 위해 Symbol()을 사용하고 있습니다.

자바스크립트
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>

산출:

Symbol(foo) Symbol(foo) undefined>

클로저 사용:

클로저를 사용하여 Enum을 생성할 수도 있습니다. 클로저는 외부 함수 범위의 변수에 액세스할 수 있는 함수입니다. 값을 반환하는 내부 함수를 생성하면 외부 함수 범위의 변수를 읽기 전용으로 만들 수 있습니다.

예: 이 예에서는 클로저를 사용하여 DaysOfWeek라는 객체를 생성합니다. days 객체는 외부 함수 범위에서 정의되며 함수 외부에서 액세스할 수 없습니다. 내부 함수 get은 days 객체에서 주어진 이름을 가진 속성 값을 반환합니다. days 객체는 직접 접근할 수 없기 때문에 클로저 외부에서 수정할 수 없습니다.

자바스크립트
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>

산출:

0>