JavaScript枚举模式命名约定



我正在从事一个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的示例中,TemperatureScaleconstTemperatureScale.CELSIUS不是!

*它必须是有效的JavaScript标识符。

最新更新