JavaScript "static" class 或模块的命名约定?

JavaScript naming convention for a "static" class, or module?

根据 Google's JavaScript style guide, classes should begin with a capital letter. However JSDoc supports the use of the @static 标记,它断言您不需要实例化 class 来使用成员。

我有一个 class/module,它完全由静态函数和属性组成。

应该命名为namespaceBar.MyFooClass,还是namespaceBar.myFooClass

作为评论者 Barmar pointed out ,如果您使用 Math 作为示例,即使不会实例化,也将您的 class/module 名称大写似乎是规范的。

一个好的通用准则似乎是在提供单个 "module" 功能时将命名空间大写,"static" 或不提供。

EG.
myFooNamespace.MyBarClass - 一个可以实例化的class。
myFooNamespace.MyBazModule - 一个 "static" class 或模块。 myFooNamespace.MyBazModule.myBarFoo() - 模块中的一个函数。 myFooNamespace.MyBazModule.myQuxBaz = "foobar" - 模块中的 属性。 myFooNamespace.myQuxNamespace - 命名空间中的命名空间。

从我的角度来看,classes 和顶级命名空间应该以大写字符和变量或函数(它们不是 classes 的构造函数)以小写字母开头。所以在你的例子中

NamespaceBar.myFooNamespace

正如评论中指出的那样,我将其标记为命名空间,而不是 class。