Ответ 1
С помощью вспомогательной функции
Несмотря на то, что это длиннее, чем ответ, если вам нужно сделать это, несколько мест могут оказаться полезными для определения вспомогательного метода:
function protomix(constructor, mix){
for(var i in mix)
if(mix.hasOwnProperty(i))
constructor.prototype[i]=mix[i];
}
var controller = function(){
//constructor
};
protomix(controller, {
function1 : function(){
//Prototype method1
},
function2: function(){
//Prototype method2
},
function3 : function(){
//Prototype method3
}
});
return controller;
Использование метода расширения jQuery
Я думал, что должен упомянуть метод jQuery extend, потому что он был взят в комментарии и потому, что в целом имеет больше функциональности, чем метод малого помощника определенных в первой части ответа:
var controller = function(){ /* ctor */};
return $.extend(controller.prototype,{
function1 : function(){
//Prototype method1
},
function2: function(){
//Prototype method2
},
function3 : function(){
//Prototype method3
}
});
Другие библиотеки
Другие библиотеки также имеют аналогичную функциональность, например метод расширения подчеркивания или Метод назначения Lo-Dash