我正在从事一个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的枚举命名约定。
一些参考:
- Google JavaScript样式指南
- Stijn de Witt的博客
- 枚举文档
与一般的编码样式一样,您会发现人们以多种不同的方式在做事,每种方式都有自己的充分理由。但是,要使任何阅读和使用您的代码工作的人最简单,我建议使用具有最权威的参考的样式,因此通常是最广泛的采用。
我找不到比Google的风格指南和上面的著作更具权威性的,这些著作是由对枚举认真思考过的人撰写的,但我很想听听任何更好的参考。
根据Google的编码约定,这确实是在JavaScript中命名枚举的正确方法。
按照此处的要求是链接。
首先,没有"正确"在JS中宣布伪内的方式*。如果可能
一个流行的大会是Google JavaScript样式指南。例如:
const TemperatureScale = {
CELSIUS: 'celsius',
FAHRENHEIT: 'fahrenheit',
};
奇怪的是,这与MDN的const
隐藏约定不一致,如Google的示例中,TemperatureScale
是const
,TemperatureScale.CELSIUS
不是!
*它必须是有效的JavaScript标识符。