Если вы ищете что-то подобное, вам обязательно следует проверить MooTools , поскольку они реализуют классы почти точно так, как вы описываете. В целом, я нашел их подход очень чистым, расширяемым и обслуживаемым. Например, вот шаблон класса, который я использую для написания всех своих классов (обратите внимание, что он использует некоторый специфичный для MooTools синтаксис):
var className = new Class ({
Implements: [Events, Options],
options: {
option1: 'option1',
option2: 'option2'
},
initialize: function(options){
this.setOptions(options);
},
function1: function(){
},
function2: function(){
}
});