| 
 extend: new() инстанциированного объекта Как в a.instance() получить new b() ? Цель: избавиться от кучи повторяющегося кода; вынести в instance общие инициализаторы и настройки объектов. Пример кода (extend взят отсюда): 
var a = function(){};
a.prototype.instance = function(){
    return ???
};
var b = function(){};
extend(b,a);
var c = new b();
Или в моем случае более уместным будет использование mixin ? P.S. Рассмотрю и другие техники решающие мою задачу. Заранее благодарен. | 
| 
 если я правильно Вас понял 
function construct( x, y ) {
	this.x = x;
	this.y = y;
}
construct.prototype.sum = function() {
	return this.x + this.y;
}
var obj = new construct( 1, 2 );
alert( [ obj.x, obj.y ].join( '\n' ) );
alert( obj.sum() );
 | 
| 
 extend(A, B); Меня интересует именно создание объекта A (new(A)) внутри метода объекта B. Если это вообще правильная практика, поступать так. Немного истории :) Задача стоящая перед мной - уменьшить дублирование кода. В рамках архитектуры приложения мне все равно какой паттерн используется в объекте, singleton, fabric или другой. Я обращаюсь к mod.instance() и в ответе получаю объект с которым я буду работать в стороннем коде. Но данный подход оказался беспощадным к размеру приложения (приходилось дублировать множество одинаковых методов). Разумным шагом было использование наследования. На определенном этапе разработки встал вопрос о новом слое абстракции (наследования), в который будут вынесены такие методы, как instance(). И появилась задача, изображу ее на примере: 
// Объект от которого наследуются другие
var Component = function(){};
Component.prototype.init = function(){...};
...
Component.prototype.instance = function (params){
  return ???;
  // здесь нужно вернуть new modA/modZ(params)
  // или function modA/modB со всеми его собственными методами (прототипа), что бы делать new во внешнем коде
}
// Разные наследованные объекты
// A
var modA = function(params){}
modA.prototype.superCoolFeature = function(){ /* yeahh!)) */ };
extend(modA, Component); // или mixin, или.. ?
// Z
var modZ = function(params){}
modZ.prototype.someOther = function(){ /*...*/ };
extend(modZ, Component); // или mixin, или.. ?
// Сторонний код
var myMod = modA.instance();  // A
myMod.superCoolFeature();
var otherMod = modZ.instance();  // Z
otherMod.someOther();
Фишка в том, что instance() реализует сам паттерн, будь то одиночка, фабрика или другой, а так же дополнительную работу над объектом, например, проверки/присваивания/вызовы. На выходе мне нужно получить объект mod, с методами Component для прозрачного использования в стороннем коде. Причем (!) т.к. процесс "инициализации" modA и modZ идентичен, то хочется его вынести в Component, что бы не плодить этот код в каждом объекте основанном на Component'e (а таких множество). Все остальные повторяющиеся методы, понятно, уже в Component :) Так как мне поступить?) | 
| 
 Вы имеете в виду наследование из множества источников? | 
| Часовой пояс GMT +3, время: 16:25. |