If you are looking for something like this, you should definitely check out MooTools , as they implement the classes almost exactly as you describe. Overall, I found that their approach is very clean, extensible, and convenient. For example, here is a template template that I use to write all my classes (note that it uses some syntax specific to MooTools):
var className = new Class ({
Implements: [Events, Options],
options: {
option1: 'option1',
option2: 'option2'
},
initialize: function(options){
this.setOptions(options);
},
function1: function(){
},
function2: function(){
}
});