Почему бы не сделать так:
Class("Foo", {
// контекст в котором будет создан класс
__context: window,
// строка/конструктор от которого будем наследоваться
__extends: Class.Bar,
// строка/конструктор или список строк/конструкторов, из которых будут получены дополнительные свойства
__implements: [ Class.IBase, Class.IPersistent ]
}, {
// code
});
Таким образом можно будет передавать любой конструктор...