одно решение я нашёл.
function uis(self){
this.self=self;
this.test=function(){
alert(this.self.slf);
}
};
$.Controller.extend("widget",{
slf:"hello ui",
// ui:new uis(this),
init: function(el){
this.ui=new uis(this);
}
});
в данном примере создаётся обьект widget, он наследует свойства обьекта Controller.В событии init который вызывается при создании экземпляра, я добавляю к widget свойство UI которому присваивается обьект возвращаемый конструктором uis. В свою очередь конструктору uis передаётся ссылка на widget, которой он потом и оперирует.
теперь я могу написать что то вроде widget.ui.test();
и получить Hello UI.
В этом варианте очень не нравится вызов конструктора uis при создании экземпляров widget. Совсем не хочется за удобство api платить скоростью.