Originariamente inviato da andr3a
Grazie kenta, sempre meglio approfondire, ma spero che il namespace non crei confusione, visto che si tratta più di un annidamento di parametri o metodi di oggetti {} che di classi vere e proprie, comunque reperibili o istanziabili dai metodi di oggetti.

Riguardo il link di crockford vorrei fare una doverosa correzione a quanto scritto nella sua pagina.

Non è vero che scrivere
function Qualcosa(){}
al posto di
var Qualcosa = function(){}
è solo una scorciatoia, perlomeno non è vero a livello di gestione del browser, nel senso che quasi tutti gli Internet Explorer non permettono di creare oggetti / classi voluminosi se si utilizza var al posto di function.

In poche parole:
function MiaClasse(){};
permette di creare classi con migliaia di linee di codice

var MiaClasse = function(){};
ha invece un limite di gestione codice interno che presumo sia più per colpa dell'allocazione della libreria javascript di IE piuttosto che dello standard ECMA (ma non ne sono sicuro).

Per concludere, se scrivete classi e non volete avere brutte sorprese, usate sempre function MiaClasse(){}; e mai var MiaClasse = function(){};




[edit]
ovviamente il discorso cade se sfruttate prototype sul nome di funzione ... ma se posso dare un consiglio, usate comunque il metodo "tradizionale" ... visto che è anche una scorciatoia
mi pare cambi anche un altra cosa (non mi ricordo se il constructor o era una cosa simile)

per il discorso Namespacing dal mio punto di vista e' bene elencarlo, poiche' permette di creare script che non "collidono" con altri .