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。
根据 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。