Is there a way to have/lock unique index values of the Enum object in Javascript?
本问题已经有最佳答案,请猛点这里访问。
阅读javascript中处理枚举类型的"推荐方法",我仍然不确定,因为我可以将该值与伪造值进行比较,而只应将其与"枚举"类型值进行比较:
1 2 3 4 5 6 7 8 9 10 11 | var DaysEnum = {"monday":1,"tuesday":2,"wednesday":3, ...} Object.freeze(DaysEnum) switch( day ){ case"monday": return"Hello" case"tuesday": return"Hi" case"blahblahday": return"No" } |
用户可以提供我的"枚举类型:daysenum"中的字符串("Monday"、"Tuesday"、"Blahblahday"),这可能会导致一些解释程序未发现的细微错误(如打字错误)。
有没有办法让/锁定枚举对象的唯一索引值?
我发现ES2015可能的解决方案是通过符号
http://putaindecode.io/en/articles/js/es2015/symbols/
这样,你就有了独特的"锁定"值,就像其他语言一样,比如Java。
1 2 3 4 5 6 7 8 9 10 11 | const DAY_MONDAY = Symbol(); const DAY_TUESDAY = Symbol(); switch(animal) { case DAY_MONDAY: return"Hello" case DAY_TUESDAY: return"Hi" //there is no way you can go wrong with DAY_BLAHBLAHDAY //the compiler will notice it and throw an error } |