Это шаблон организации кода.
Существует два хороших способа обмена методами между объектами
var oneWay = Object.create(bagOfMethods);
// some value of extend that is sensible
var otherWay = extend({}, bagOfMethods);
Единственное реальное преимущество прототипов заключается в том, что связь между oneWay
и bagOfMethods
является действующим.
Наличие действующей ссылки позволяет создавать действительно мощные расширения и патчить обезьяны.
Примером является Object.prototype.methodNowLivesOnAllInstances = function () { };
Это способ сделать «асинхронный»программируя, вы можете расширить «класс», не беспокоясь, получат ли все экземпляры новый метод.
Примечание к модульному шаблону, оно раздутое и не нужно.Вместо этого используйте построитель модулей, например, modul8 или browserify.