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>