Если вы хотите пойти с наследованием, вы можете создать базовый класс, который может создавать обратные вызовы, связанные с его экземплярами, например:
var Bindable = Class.extend({
bind: function( fn ) {
var that = this;
return function(){ return fn.apply( that, arguments ); };
}
}
Теперь вы можете расширить этот класс и использовать его метод связывания для создания обратных вызовов
// extend Bindable
var Pane = Bindable.extend({
init: function( el ) {
this.el = el; this.$el = $(el);
// don't return this, it's incorrect;
//return this;
},
handleData: function( data ) {
// grab an imaginary key from the data for demo purposes
var stuff = data.key;
this.$el.html( stuff );
},
do_something: function() {
this.$el.html('doing something!');
$.getJSON( '/somewhere.js', this.bind( this.handleData ) );
}
});