Se ci si rivolge ambienti non del browser come node.js questo sarà possibile perché si sarà in grado di passare i riferimenti ai membri globali del modulo, ad esempio Array, ad altri moduli. Quegli altri moduli possono quindi estendere il passato in oggetto e / o il suo prototipo con funzionalità extra che sarà accessibile solo dal modulo di chiamata. Altri moduli avrebbero dovuto fare lo stesso al fine di ottenere queste estensioni; di conseguenza, i conflitti sono ridotti al minimo poiché le importazioni sono espliciti.
Tuttavia, in ambienti del browser non è questo il caso, in quanto v'è un solo windowoggetto e le eventuali modifiche ai suoi membri sono disponibili in tutto il mondo. Non appena uno qualsiasi dei vostri moduli esteso Arrayquelle estensioni sarebbe disponibile a tutti gli altri moduli - aumentando la possibilità di conflitti e rendere il codice più difficile da ragionare su.
Detto questo, ci sono modelli in JS, e quindi tipografico, che dovrebbe portare a termine ciò che si desidera. Un tale modello è il modello 'mixin', che consente di aggiungere la funzionalità in più su un oggetto un'istanza base. Si potrebbe separare il codice riutilizzabile in moduli mixin che potrebbero poi essere applicate ad un oggetto quando necessario, o anche automaticamente nei costruttori. Date un'occhiata a questo per una panoramica e implementazione decenti esempi: http://javascriptweblog.wordpress.com/2011/05/31/a-fresh-look-at-javascript-mixins/