26

我知道这个问题没有答案,但我很想知道其他人的想法。

在像 Java 这样的语言中,习惯以大写字母开头类,以小写字母开头对象。但是 JavaScript 呢,一切都是对象?

我看到有些人建议只将被视为类的对象大写。即具有原型的函数对象,旨在与new运算符一起使用。这些对象的实例将被小写。

这听起来合乎逻辑。但是你如何处理只有一个实例的“全局对象”?大多数人似乎都将这些大写(例如,MathExt.History)。这在直觉上感觉是对的,但很难用一致的规则来证明它的合理性。

那么用作命名空间的对象呢?这些似乎无处不在:YUIExt.utiljQuery等。

请为您发自内心的宗教观点提供世俗的合理化解释。

4

4 回答 4

41

您可以遵循此Google JavaScript 样式指南

通常,使用 functionNamesLikeThis、variableNamesLikeThis、ClassNamesLikeThis、EnumNamesLikeThis、methodNamesLikeThis 和 SYMBOLIC_CONSTANTS_LIKE_THIS。

于 2011-04-12T19:27:50.113 回答
2

约定是没有约定。做你想做的,只要保持一致。我建议遵循 Java 风格并忽略您碰巧使用的库(dojo, Ext, YUI,等)遵循的任何约定。$

于 2009-10-08T23:39:17.733 回答
2

正如 Douglas Crockford 所推荐的:

"Constructor functions that must be used with the new prefix should start with a capital letter. JavaScript issues neither a compile-time warning nor a run-time warning if a required new is omitted. Bad things can happen if new is missing, so the capitalization convention is an important defense."

https://www.crockford.com/code.html

于 2019-10-30T19:21:27.200 回答
0

我同意定义“类”(使用空引号)的函数的大写,这些函数稍后将使用 new 运算符实例化。

但就是这样。全局对象只是全局的。给他们起你想要的名字。

我要确保的是,它们是独一无二的且具有足够的描述性,以至于它们不会在以后被其他开发人员意外覆盖。

于 2009-10-08T23:33:26.777 回答