2009-10-08 15 views
13

So che questa domanda non ha una risposta, ma sono curioso di sapere cosa pensano gli altri.Convenzione di capitalizzazione per oggetti JavaScript

In una lingua come Java, è una convenzione per iniziare le classi con lettere maiuscole e oggetti con lettere minuscole. Ma che dire di JavaScript, dove tutto è un oggetto?

Ho visto che alcune persone suggeriscono di capitalizzare solo oggetti che sono trattati come classi; vale a dire oggetti funzione con un prototipo, che devono essere utilizzati con il nuovo operatore . Le istanze di quegli oggetti sarebbero in minuscolo.

Sembra logico. Ma cosa fai a proposito di "oggetti globali", dove c'è una sola istanza? La maggior parte delle persone sembra capitalizzare questi valori (ad esempio, Math o Ext.History). Questo intuitivamente sembra giusto, ma è difficile giustificarlo con una regola coerente.

E gli oggetti utilizzati come spazi dei nomi? Questi sembrano essere tutta la mappa: YUI, Ext.util, jQuery, ecc

Si prega di fornire razionalizzazioni secolari per le vostre opinioni religiose sentita.

risposta

27

Puoi seguire questa Google JavaScript Style Guide

In generale, utilizzare functionNamesLikeThis, variableNamesLikeThis, ClassNamesLikeThis, EnumNamesLikeThis, methodNamesLikeThis e SYMBOLIC_CONSTANTS_LIKE_THIS.

+0

il tuo link consiglia di salvare nomi di file come 'filenameslikethis.js'. Sai perché tutto è in minuscolo? Penso che sia difficile da leggere. – ayjay

+1

C'è scritto "... e non dovrebbe contenere segni di punteggiatura ad eccezione di' -' o '_' (preferiamo' -' a '_')". Quindi raccomanda anche 'nome-file-come-this.js' –

+0

Cosa succede se una variabile contiene una classe? 'var ConstructorClass = classMap ['className']' o 'var constructorClass = classMap ['className']'? –

1

Sono d'accordo con la maiuscola delle funzioni che definiscono "classi" (virgolette utilizzate) che a loro volta verranno instanciate in seguito utilizzando il nuovo operatore.

Ma questo è tutto. Gli oggetti globali sono solo globali. Chiamali come vuoi

Tutto quello che vorrei essere sicuro è che sono unici e abbastanza descrittivi da non essere sovrascritti accidentalmente da un altro sviluppatore in un secondo momento.

0

La convenzione è che non c'è convenzione. Fai quello che vuoi, ma sii coerente. Ti suggerisco di seguire lo stile Java e ignorare qualsiasi convenzione la libreria (dojo, Ext, YUI, $, ecc.) Che stai usando sta seguendo.

Problemi correlati