views:

127

answers:

2

I know this question has no answer, but I'm curious to know what other people think.

In a language like Java, it's a convention to begin classes with capital letters, and objects with lowercase letters. But what about JavaScript, where everything is an object?

I've seen some people suggest capitalizing only objects that are treated as classes; i.e. function objects with a prototype, that are intended to be used with the new operator. Instances of those objects would be lowercased.

That sounds logical. But what do you do about "global objects", where there's only one instance? Most people seem to capitalize these (for example, Math or Ext.History). This intuitively feels right, but it's hard to justify it with a consistent rule.

And what about objects that are used as namespaces? These seem to be all over the map: YUI, Ext.util, jQuery, etc.

Please provide secular rationalizations for your heart-felt religious views.

+1  A: 

I agree with the capitalization of functions that define "classes" (air-quotes used) that in turn will be instanciated later using the new operator.

But that's it. Global objects are just global. Name them what you want.

All I would make sure is that they are unique and descriptive enough that they won't be overwritten accidentally by another developer at a later date.

scunliffe
A: 

The convention is that there is no convention. Do what you want, just be consistent. I suggest follow Java style and ignore whatever convention the library (dojo, Ext, YUI, $, etc) you happen to be using is following.

Justin Johnson