Если вы ориентируетесь среды без браузера , как Node.js это будет возможно , потому что вы будете иметь возможность передавать ссылки на глобальные члены вашего модуля, например Array, к другим модулям. Те , другие модули могут затем продлить переданные в объекте и / или его прототип с дополнительными функциональными возможностями, который будет доступен только с помощью модуля вызова. Другие модули должны делать то же самое для того , чтобы получить эти расширения; Таким образом, конфликты сведены к минимуму , так как импорт явно.
Однако в среде браузера это не так , поскольку существует только один windowобъект , и любые изменения в его член доступны везде. Как только любой из ваших модулей расширить Arrayэти расширения будут доступны для всех остальных модулей - увеличивает вероятность возникновения конфликтов и сделать код труднее рассуждать о.
С учетом сказанного, есть модели в JS, и , следовательно , машинопись, который должен сделать то , что вы хотите. Одним из такого шаблона является «подмешать» модель , которая позволяет добавлять на дополнительной функциональности на объект экземпляр основе. Можно выделить многоразовый код в Смешении модулей , которые затем могут быть применены к объекту , когда это необходимо, или даже автоматически в конструкторах. Посмотрите на это за достойный обзор и реализации примеров: http://javascriptweblog.wordpress.com/2011/05/31/a-fresh-look-at-javascript-mixins/