Ho spesso i siti che mettono tutta la loro javascript all'interno di una struttura "namespace" sulla falsariga diEsiste un modo "conciso" per fare il namespacing in JavaScript?
namespaces = { com : { example: { example.com's data} }
Ma come impostare questa funzione in modo sicuro rispetto ad altri framework namespace sembra richiedere una quantità relativamente pesante di incontrato codice (definito come> 2 righe). Mi stavo chiedendo se qualcuno sa di un modo conciso per fare questo? e se esiste un modo relativamente standard/coerente di strutturarlo? per esempio. è lo spazio dei nomi "com" direttamente collegato all'oggetto globale o è collegato tramite un oggetto dello spazio dei nomi?
[Modifica: whoops, ovviamente {com = { ... } }
non porterebbe a termine nulla di ciò che intendevo, grazie a Shog9 per averlo indicato. : D]
Anche se, ora 'com_example' sta per essere parte dell'oggetto globale. Supponiamo di aggiungere molti più oggetti 'com_something_else',' com_etc', quindi stiamo ancora inquinando il livello di root dell'oggetto globale. Non sarebbe preferibile se avessimo un solo oggetto 'com' nel globale in cui sono stati aggiunti tutti gli altri oggetti? Inoltre, non vogliamo sovrascrivere alcun oggetto esistente, cosa succede se vengono utilizzate più librerie. – Peter
@Peter: se più librerie definiscono gli stessi simboli, avrai problemi, non importa cosa; è per questo che le librerie come jQuery fanno di tutto per inserire tutto in un unico oggetto globale. Il mio punto non era che dovresti * usare più oggetti di primo livello, ma solo che gli spazi dei nomi fasulli con oggetti profondamente nidificati non ti fanno davvero guadagnare nulla su nomi di oggetti pazzeschi. Guarda il mio ultimo esempio per un metodo più pratico: usa un singolo nome globale che è improbabile che possa scontrarsi, e quindi una tecnica che consente a diversi bit di codice di aggiungere oggetti ad esso. – Shog9