Javascript ENUM模式命名约定

时间:2012-11-05 13:29:52

标签: javascript naming-conventions jshint

我正在开发一个javascript项目,需要使用javascript“Enums”,意思是像:

这样的对象
var WinnerEnum = {
            Player1: 1,
            Player2: 2,
            Draw: 0
    };

这对我很有用,但是,我不知道命名Enum的正确方法(根据惯例)是因为据我所知只有类名以大写字母开头(表示能够调用一个构造函数)。

JSHint还输出以下警告:

Missing 'new' prefix when invoking a constructor.

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

2 个答案:

答案 0 :(得分:4)

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

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

这类似于枚举的Java's naming convention

一些参考文献:

与一般的编码风格一样,你会发现人们以不同的方式做事,每种方式都有自己的一套正当理由。但是,为了让阅读和使用代码的人最简单,我建议使用具有最权威参考的样式,因此通常是最广泛采用的样式。

我找不到比谷歌的风格指南和上面的着作更具权威性的参考文献,这些参考文献是由那些认真考虑过枚举的人写的,但我很想听听任何更好的参考文献。

答案 1 :(得分:1)

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

根据要求here is a link