33

我正在开发一个需要使用 javascript“枚举”的 javascript 项目,这意味着对象如下:

var WinnerEnum = {
            Player1: 1,
            Player2: 2,
            Draw: 0
    };

这对我来说非常有用,但是,我不知道命名枚举的正确方法(根据约定)是什么,因为据我所知,只有类名以大写字母开头(表示能够在)。

JSHint 还输出以下警告:

Missing 'new' prefix when invoking a constructor.

如果没有约定,我会很感激一种命名枚举的好方法,不会将它们与类名混淆。2014 年更新:JSHint 不再这样做。

4

2 回答 2

35

这确实是命名枚举的正确方法,但枚举值应该是 ALL_CAPS 而不是 UpperCamelCase,如下所示:

var WinnerEnum = {
    PLAYER_1: 1,
    PLAYER_2: 2,
    DRAW: 0
};

这类似于Java 的枚举命名约定。

一些参考资料:

与一般的编码风格一样,您会发现人们以许多不同的方式做事,每种方式都有自己的一套充分理由。但是,为了让阅读和使用您的代码的任何人都更容易,我建议使用具有最权威参考的样式,因此通常是最广泛采用的样式。

我找不到比 Google 的样式指南和上面的著作更权威的参考,这些参考是由对枚举认真思考过的人写的,但我很想听听任何更好的参考。

于 2018-02-06T15:50:12.197 回答
12

根据 Google 的编码约定,这确实是在 javascript 中命名枚举的正确方法。

根据要求,这里是一个链接

于 2013-02-07T02:07:53.327 回答