Javascript ENUM 模式命名约定

标签 javascript naming-conventions jshint

我正在开发一个 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/

相关文章:

javascript - 悬停时显示随机图像

c++ - 提取的接口(interface)命名约定

javascript - 有没有办法消除 JSHint 的 "variable is already defined"警告?

javascript - Ember 数据 : Allow Embedded ID for Record

javascript - 如何将照片链接添加到我的文件中并自动继续使用 JavaScript

Javascript 不适用于禁用的文本框

regex - 下划线命名约定正则表达式

Perl 6 命名空间和模块系统

javascript - 为什么 "setter is defined without getter"是 JSHint 错误?

javascript - 不能在 Windows 中将 GLOB 与 JSHint 一起使用?