2009-10-08 18 views
13

Wiem, że to pytanie nie ma odpowiedzi, ale jestem ciekawa, co myślą inni.Konwencja dotycząca wielkich liter dla obiektów JavaScript

W języku takim jak Java konwencją jest rozpoczynanie zajęć za pomocą wielkich liter i obiektów małymi literami. Ale co z JavaScriptem, gdzie wszystko jest przedmiotem?

Zauważyłem, że niektórzy ludzie sugerują używanie tylko tych obiektów, które są traktowane jako klasy; tj. obiekty funkcyjne z prototypem, które są przeznaczone do stosowania z operatorem nowy. Instancje tych obiektów byłyby małe.

Brzmi logicznie. Ale co zrobić z "obiektami globalnymi", gdzie jest tylko jedno wystąpienie? Większość ludzi zdaje się to kapitalizować (na przykład Math lub Ext.History). To intuicyjnie wydaje się właściwe, ale trudno to uzasadnić spójną regułą.

A co z obiektami, które są używane jako przestrzenie nazw? Te wydają się być na całej mapie: YUI, Ext.util, jQuery itp

Podaj świeckie racjonalizacje dla swoich poglądów religijnych serca odczuwalne.

Odpowiedz

27

Możesz śledzić ten Google JavaScript Style Guide

Generalnie, należy functionNamesLikeThis, variableNamesLikeThis, ClassNamesLikeThis, EnumNamesLikeThis, methodNamesLikeThis i SYMBOLIC_CONSTANTS_LIKE_THIS.

+0

twój link zaleca zapisanie nazw plików takich jak 'filenameslikethis.js'. Czy wiesz, dlaczego wszystko jest napisane małymi literami? Myślę, że wygląda na to, że trudno to odczytać. – ayjay

+1

Napisano "... i nie powinno zawierać znaków interpunkcyjnych, z wyjątkiem' -' lub '_' (preferuje' -' do '_')". Dlatego też zaleca się 'file-name-like-this.js' –

+0

Co zrobić, jeśli zmienna zawiera klasę? 'var ConstructorClass = classMap ['className']' lub 'var constructorClass = classMap ['className']'? –

1

Zgadzam się z kapitalizacją funkcji, które definiują "klasy" (używane przez cudzysłowy), które z kolei zostaną wprowadzone później za pomocą nowego operatora.

Ale to wszystko. Obiekty globalne są po prostu globalne. Nazwij je, co chcesz.

Wszystko, co mogę zrobić, to pewność, że są unikatowe i wystarczająco opisowe, aby nie zostały przypadkowo nadpisane przez innego programistę w późniejszym terminie.

0

Konwencja jest taka, że ​​nie ma konwencji. Rób, co chcesz, po prostu bądź konsekwentny. Proponuję podążać za stylem Java i zignorować konwencję biblioteki (dojo, , YUI, , itp.), Której używasz.

Powiązane problemy