我正在开发一个 javascript 项目,它需要使用 javascript“枚举”,意思是像这样的对象:
var WinnerEnum = {
Player1: 1,
Player2: 2,
Draw: 0
};
这对我来说非常有用,但是,我不知道什么是正确的方式(根据惯例)命名枚举,因为据我所知只有类名以大写字母开头(表示能够调用上的构造函数)。
JSHint 还会输出以下警告:
Missing 'new' prefix when invoking a constructor.
如果没有约定,我希望有一种命名枚举的好方法,不会将它们与类名混淆。 2014 年更新:JSHint 不再这样做。
最佳答案
这确实是命名枚举的正确方法,但枚举值应该是 ALL_CAPS 而不是 UpperCamelCase,如下所示:
var WinnerEnum = {
PLAYER_1: 1,
PLAYER_2: 2,
DRAW: 0
};
这类似于 Java's naming convention对于枚举。
一些引用资料:
与一般的编码风格一样,您会发现人们以多种不同的方式做事,每种方式都有自己的一套充分理由。但是,为了让阅读和使用您的代码的任何人都能轻松地进行操作,我建议使用具有最权威引用并因此通常被最广泛采用的样式。
我找不到比 Google 的风格指南和上面的著作更权威的引用资料,这些引用资料是由认真考虑过枚举的人撰写的,但我很想听听任何更好的引用资料。
关于Javascript ENUM 模式命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13233137/