Questa è un'ottima domanda e un problema comune nell'avanzamento dell'architettura JavaScript.
Mi sembra che tu stia descrivendo la situazione di "accoppiamento stretto".
Una volta che le funzioni diventano oggettivate, la tendenza è quella di fare riferimento direttamente a questi meravigliosi oggetti, da un oggetto all'altro, anche attraverso lo spazio dei nomi. Perché è facile vero?
var Object1, Object2 = {};
Object1.somefunction = function(){
//Tight Coupling!!
Object2.functionCall();
}
È facile, ma questi riferimenti apparentemente innocenti si uniscono, per renderti triste quando devi rimuovere o sostituire gli oggetti. Ciò accade molto in JavaScript, quindi la comprensione dell'accoppiamento stretto è la chiave per rendere un codice JS manutenibile.
Ecco alcuni altri pensieri:
1 - Se i tuoi oggetti non stanno già comunicando da - innescando e ascoltando gli eventi; dovrebbero essere. Questa è la soluzione ai riferimenti difficili.
2 - Design Patterns. Ci sono molte sfide che sono già state risolte là fuori, le soluzioni riutilizzabili standardizzate - sono modelli di design.
Capire dove sono i modelli aiuta a concentrarsi su quali soluzioni possono avere senso. Un modello per la comunicazione tra oggetti è denominato Publisher / Subscriber o PubSub.
3 - Queste cose aiutano con la manutenibilità: MVC con un router, Modelli - associazione dati, AJAX - attraverso oggetti Proxy o Delegati.
4 - Cerca framework e librerie che risolvano i problemi del browser multiplo. Non reinventare le ruote di cui non hai bisogno di saperne di più. A seconda del tuo ambiente, alcuni framework potrebbero diventare delle scelte ovvie.
5 - Pensa a miglioramenti e ottimizzazioni come sistemi di costruzione, minification, linting, tdd, ecc.
6 - Inoltre, il più importante di tutti: caricatori di moduli. Dai un'occhiata a Require.js È un modo molto carino per spezzare JS in moduli e poi caricarli tutti in modo ottimizzato.
Spero che ti aiuti.