Tento tutoriál ukáže postup vytvárania konštantných enumov v JavaScripte.
Ako môžem zaručiť, že sa definícia mojich enumov v JavaScripte nezmení?
Na vytvorenie konštanty „ enum “ v JavaScripte použite „ Object.freeze() “. Robí objekt nemenným, nemenným alebo len na čítanie. Zabraňuje modifikácii vlastností objektu, ako je pridávanie alebo odstraňovanie atribútov objektu alebo aktualizácia hodnôt existujúcich vlastností.
Príklad
Najprv vytvorte enum ' Veľkosť ” pomocou objektových literálov, kde vlastnosti objektu budú veľké:
konšt Veľkosť = {
MALÝ : 'malý' ,
STREDNÝ : 'stredne' ,
VEĽKÝ : 'veľký'
} ;
Zavolajte na „ Object.freeze() ” a odovzdajte enum ako argument, aby bola definícia enum nezmeniteľná:
Objekt . zmraziť ( Veľkosť ) ;
Vytlačte zoznam s názvom „ Veľkosť “ na konzole:
konzoly. log ( Veľkosť ) ;
Výkon
Tu získame iba hodnoty vlastností objektu alebo enum pomocou „ Object.values() ” a zobrazte všetky hodnoty pre každý atribút na konzole:
konšt veľkosť = Objekt . hodnoty ( Veľkosť ) ;
konzoly. log ( veľkosť ) ;
Výstup zobrazuje pole hodnôt enum:
Teraz sa pokúsime pridať novú konštantu “ XLARGE “so svojou hodnotou” xlarge ” do objektu enum a vytlačte objekt na konzole:
Veľkosť. XLARGE = 'xlarge' ;konzoly. log ( Veľkosť ) ;
Výstup ukazuje, že nová konštanta nie je pridaná do objektu enum:
Teraz zmeňme alebo aktualizujme hodnotu konštanty „ MALÝ “ ako “ sm “:
Veľkosť. MALÝ = 'sm' ;Vytlačte hodnoty konštánt objektov enum pomocou metódy „Object.values()“:
konšt veľkosť = Objekt . hodnoty ( Veľkosť ) ;konzoly. log ( veľkosť ) ;
Neaktualizuje hodnotu konštanty „SMALL“:
Pri nepoužívaní „ Object.freeze() “, môžete jednoducho upraviť vlastnosti objektu:
To všetko malo zaručiť, že definícia enumov sa v JavaScripte nezmení.
Záver
Na vytvorenie konštanty „ enum “ v JavaScripte použite „ Object.freeze() ” metóda, ktorá zabraňuje pridávaniu alebo odstraňovaniu enumových konštánt alebo aktualizácii hodnôt existujúcich konštánt. Robí objekt nemenným alebo nemenným. Tento tutoriál demonštroval postup vytvárania konštantných enumov v JavaScripte.